通用类库 - 错误、说明、问题、使用功能和建议 - 页 2

 
组合器
平均时间为O(1)最差为O(n),性能强烈依赖于哈希值。

O(n)--那是如果你头对头地去做。

 
瓦西里-索科洛夫


截至2017年12月6日,标准的MetaTrader 5交付集 包括所谓的通用类,它实现了数据存储和提取的有效算法。 创建这个分支是为了描述这些类,用它们工作的例子,并为如何改进它们的工作提出建议。

什么是通用型?G eneric是一个特殊的模板类,可以存储自定义的数据类型。类型识别是在编译时进行的,因此可以实现高性能。

为什么是通用的? 通常,新手程序员只熟悉一种类型的集合:数组。但是有很多任务,使用数组工作是无效的。想象一下,我们有一个由一百万个唯一标识符组成的数组,例如,一千个订单。如何检查在这一千多个订单中是否有一个编号为N的订单?如果我们使用其中一个通用类,这个任务几乎可以立即完成,在一个恒定的时间内完成,这并不取决于我们搜索的元素数量。还有一些问题,来自通用集合的正确算法可能比程序员发明的算法更快。

这是一个有趣的主题。

我个人认为,在编程中没有什么比在数组中组织数据并在循环中正确处理这些数组更有效的了。这是基础知识的基础。所有其他解决方案都是衍生物,需要额外的计算机时间并产生开销。

全局数组、局部数组、循环和函数。一切都是。

那些熟练掌握这些工具的人将在效率上领先于所有其他人。

我认为。

 
伊万-古罗夫

我建议简化名称--使其更符合逻辑。例如,在mql5中,CArrayList是一个数组还是List,是两者的实现?

这一切导致了问题和困惑。IMHO,我们应该使用stl而不是C#或Java。或者去掉前面的C,让它只是ArrayList。

...

相反,我非常喜欢使用C#。

 
fxsaber:

我说得很清楚。

看看突出显示的是什么。

查了一下。写得很正确。你的答案是,在字典中找到一个项目平均需要O(1),即瞬时。
 
弗拉基米尔-卡尔普托夫
如果你能举出例子,比如说关于在成千上万的交易中搜索。

好的。

 
标签 Konow:

这是一个有趣的话题。

我个人认为,在编程中没有什么比知道如何在数组中正确组织数据以及如何在循环中正确处理这些数组更有效的了。这是基础知识的基础。所有其他解决方案都是衍生物,需要额外的计算机时间并产生开销。

全局数组、局部数组、循环和函数。一切都是。

那些能够熟练掌握这些工具的程序员将在效率上领先于所有其他人。

我认为。

彼得,请慢点。这是一个关于新的SB类的讨论,而不是你的抽象的声明。请不要把话题转移到一边。谢谢你。

 
阿尔乔姆-特里什金

彼得,请慢点。这是一个关于新的SB类的讨论,而不是你的抽象的声明。请不要把话题扯到一边去。谢谢你。

我有权利表达我的意见?还是你无法忍受?
 
ReTeg Konow:
我有权发表自己的意见吗?还是你无法容忍?
不,因为这种观点已经被表达了100次,这里又有你的萨摩耶,比如说OOP是邪恶的等等,你已经听够了这种观点,你已经厌倦了。
 
标签 Konow:
我有权利表达我的意见吗?还是你无法容忍?

你的意见通常是一部《战争与和平》的三卷本论文。所以最好是克制。

注意--这是一位版主的第二次请求。

 
fxsaber:

O(n)是指头对头。

不,O(n)是由于在非常罕见的情况下的哈希碰撞。这些是最佳算法的复杂度估计。碰撞的数量与内存开销有关

在正常情况下,基本上没有必要进行搜索,因为通过计算哈希值,我们基本上已经知道了所需元素的位置。