文章 "MQL5秘笈之:采用关联数组或字典实现快速数据访问" - 页 2 1234 新评论 Alain Verleyen 2015.06.13 14:44 #11 非常好、非常有趣的文章。谢谢。 [删除] 2015.06.14 16:58 #12 好文章,帮助新手迈出第一步 BmC 2015.08.21 13:31 #13 我很抱歉!我刚开始学习列表和对象创建。当我开始测试和研究你的代码时,我发现了一个小错误,但我可能是错的。在比较你的程序库和标准程序库谁更快时,你在描述中说了一件事,但在图表上却显示了另一件事。是你没注意到,还是我看错了?P.P. 4.3. Vasiliy Sokolov 2015.08.21 14:02 #14 BmC:我很抱歉!我刚开始学习列表和对象创建。当我开始测试和研究你的代码时,我发现了一个小错误,但我可能是错的。在比较你的程序库和标准程序库谁更快时,你在描述中说了一件事,但在图表上却显示了另一件事。是你没注意到,还是我看错了?P.P. 4.3.一开始我写的确实是个错误,但后来我仔细看了一下图表:不,一切都正确。y 轴表示的是时间,时间越长,项目添加的速度越慢。图表显示,向 CArrayObj 添加一百万个项目需要 5 秒钟,而向 CDictionary 添加相同数量的项目只需要 1 秒钟。也就是说,特别是在大量元素顺序添加的任务中,CDictionary 的内存重新分配模型要优于 CArrayObj 中的标准重新分配模型。 BmC 2015.08.21 20:33 #15 Vasiliy Sokolov:一开始我写道,这确实是个错误,但后来我仔细看了一下图表:不,一切都正确。Y 轴显示的是时间,时间越长,添加项目的速度越慢。图表显示,向 CArrayObj 添加一百万个条目需要 5 秒钟,而向 CDictionary 添加相同数量的条目只需要 1 秒钟。也就是说,与 CArrayObj 中的标准重新分配模型相比,CDictionary 的内存重新分配模型在需要大量连续添加项目的任务中胜出。不,这仍然是个错误。但这对我来说并不重要,但对其他读者来说,是的,他们也会像我一样从一开始就明白这一点。这应该写得非常精确,因为它导致了一个遥远的误解。))))引用:它使用 TEST_ARRAY 宏。如果定义了该宏,测试将对 CArrayObj 执行操作,如果没有定义,则对 CDictionary 执行操作。在这种特殊情况下 ,第一个添加新元素的测试胜过 CDictionary,它的内存重新分配模型更好:必须有:它使用 TEST_ARRAY 宏。如果定义为 "NOT",测试将对 CArrayObj 执行操作,如果定义为 "YES",则对 CDictionary 执行操作。在这种特殊情况下,第一个添加新元素的测试比 CDictionary 更胜一筹:整个错误直接出现在代码中,从一开始就通过 CDictionary 去填充列表,然后如果没有定义 宏 TEST_ARRAY 就转到 CArrayObj 这里是错误发生的地方。这是由于在一个材料上工作的疲劳。 但这是一个伟大而耗时的材料。它对我理解指针和对象创建。我很难融入其中。你需要在短时间内掌握它......。 Alexey Volchanskiy 2015.08.22 03:19 #16 BmC:我在指针和对象创建方面得到了很多帮助。指针和对象创建。 在 MQL4 和 MQL5 中,没有指针,只有描述符,这是一个完全不同的组合。 BmC 2015.08.22 10:44 #17 Alexey Volchanskiy: В MQL4 и MQL5 нет указателей, есть дескрипторы, это совсем другой компот. Alexey Volchanskiy: 在 MQL4 和 MQL5 中,没有指针,只有描述符,这是完全不同的组合。你是想耍小聪明,还是只想获得评分。如果您没有时间阅读这篇文章和我所写的内容,我请您不要再这样做了,而是给 MetaQuotes 软件公司的创建者写信,告诉他们有什么或应该有什么,但不要在这里对聪明人这样做。对于那些像您一样希望在未来得到它的人:www.mql5.com/ru/docs/basis/types/object_pointers. ;你一定只对这种愚蠢的言论有评价。如果你无事可做,就再读一读 MQL 参考资料。如果你非常需要对愚蠢言论的评分,那就写信给你那些愚蠢想法的创造者吧,他们会在那里为你赚钱的。如果您不明白我想说什么,那么举个例子,我告诉您,您仍然可以把愚蠢的想法写给创造者:" class="linkator">"对象描述符"一章。 然后你给出的理由是:"既然我如此愚蠢,而且我希望我所有的蠢话都能成为真实合理的陈述,那就请'创造者'救救我吧。如果我是 "创造者",我会建议你去买一朵 "七色花"。但这对你来说并不重要,你已经写了三个语句。3093+3=3096.我已经帮了你,现在帮我不要再在这里写了。我在论坛上已经呆了很长时间,你的发言我看是一如既往的愚蠢和一成不变。你总是用片段的形式来讨论问题,总是纠正每个人的错误,在这里却发表如此愚蠢的言论。我不知道你为什么这么生气,因为我也是同样的用户,我也是为了补充知识而爬上论坛的初学者,而当这样一个拥有 3000 分的 "大师 "写东西给他听时,他也会听。而他不过是一个为自己设定目标、获得评分的傻瓜。他甚至没有想到,他的发言将读者引向了另一个方向。我再次向您道歉。如果你再在我的回复中出现,我将坚持屏蔽你,你也将失去你那愚蠢的评分。尤其是向版主证明你的愚蠢是毫无价值的,你的回答总是离题万里,愚蠢至极。 [删除] 2015.09.24 16:28 #18 现在已经是九月份了,标准库中 还没有这个类:)顺便提一个关于该类代码本身的问题。在代码末尾定义它有什么意义?#define FOREACH_DICT(dict) for(CObject* node = (dict).GetFirstNode(); node != NULL; node = (dict).GetNextNode()) 因为在示例中根本没有用到它... Vasiliy Sokolov 2015.09.29 12:35 #19 Konstantin Karpov:现在已经是九月份了,标准库中 还没有这个类:)顺便提一个关于该类代码本身的问题。在代码末尾定义它有什么意义? 因为在示例中根本没有用到它... 用到了。在第 5.3 段:"枚举字典中元素的方法"。字典枚举类似于列表枚举,因此枚举操作不太标准,for 的内容也不同于经典数组枚举的内容。为了让我们自己和用户的生活更轻松,不再 痛苦地 记住 节点的 枚举 ,我们引入了这个宏。 Zhichao Wang 2015.11.18 12:33 #20 拜EA老师 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我很抱歉!
我刚开始学习列表和对象创建。
当我开始测试和研究你的代码时,我发现了一个小错误,但我可能是错的。
在比较你的程序库和标准程序库谁更快时,你在描述中说了一件事,但在图表上却显示了另一件事。是你没注意到,还是我看错了?
P.P. 4.3.
我很抱歉!
我刚开始学习列表和对象创建。
当我开始测试和研究你的代码时,我发现了一个小错误,但我可能是错的。
在比较你的程序库和标准程序库谁更快时,你在描述中说了一件事,但在图表上却显示了另一件事。是你没注意到,还是我看错了?
P.P. 4.3.
一开始我写的确实是个错误,但后来我仔细看了一下图表:不,一切都正确。y 轴表示的是时间,时间越长,项目添加的速度越慢。图表显示,向 CArrayObj 添加一百万个项目需要 5 秒钟,而向 CDictionary 添加相同数量的项目只需要 1 秒钟。也就是说,特别是在大量元素顺序添加的任务中,CDictionary 的内存重新分配模型要优于 CArrayObj 中的标准重新分配模型。
一开始我写道,这确实是个错误,但后来我仔细看了一下图表:不,一切都正确。Y 轴显示的是时间,时间越长,添加项目的速度越慢。图表显示,向 CArrayObj 添加一百万个条目需要 5 秒钟,而向 CDictionary 添加相同数量的条目只需要 1 秒钟。也就是说,与 CArrayObj 中的标准重新分配模型相比,CDictionary 的内存重新分配模型在需要大量连续添加项目的任务中胜出。
不,这仍然是个错误。但这对我来说并不重要,但对其他读者来说,是的,他们也会像我一样从一开始就明白这一点。这应该写得非常精确,因为它导致了一个遥远的误解。))))
引用:它使用 TEST_ARRAY 宏。如果定义了该宏,测试将对 CArrayObj 执行操作,如果没有定义,则对 CDictionary 执行操作。在这种特殊情况下 ,第一个添加新元素的测试胜过 CDictionary,它的内存重新分配模型更好:
必须有:它使用 TEST_ARRAY 宏。如果定义为 "NOT",测试将对 CArrayObj 执行操作,如果定义为 "YES",则对 CDictionary 执行操作。在这种特殊情况下,第一个添加新元素的测试比 CDictionary 更胜一筹:
整个错误直接出现在代码中,从一开始就通过 CDictionary 去填充列表,然后如果没有定义 宏 TEST_ARRAY 就转到 CArrayObj 这里是错误发生的地方。这是由于在一个材料上工作的疲劳。
但这是一个伟大而耗时的材料。它对我理解指针和对象创建。我很难融入其中。你需要在短时间内掌握它......。
BmC:
我在指针和对象创建方面得到了很多帮助。指针和对象创建。
В MQL4 и MQL5 нет указателей, есть дескрипторы, это совсем другой компот.
在 MQL4 和 MQL5 中,没有指针,只有描述符,这是完全不同的组合。
你是想耍小聪明,还是只想获得评分。如果您没有时间阅读这篇文章和我所写的内容,我请您不要再这样做了,而是给 MetaQuotes 软件公司的创建者写信,告诉他们有什么或应该有什么,但不要在这里对聪明人这样做。对于那些像您一样希望在未来得到它的人:www.mql5.com/ru/docs/basis/types/object_pointers. ;
你一定只对这种愚蠢的言论有评价。如果你无事可做,就再读一读 MQL 参考资料。如果你非常需要对愚蠢言论的评分,那就写信给你那些愚蠢想法的创造者吧,他们会在那里为你赚钱的。
如果您不明白我想说什么,那么举个例子,我告诉您,您仍然可以把愚蠢的想法写给创造者:" class="linkator">"对象描述符"一章。
然后你给出的理由是:"既然我如此愚蠢,而且我希望我所有的蠢话都能成为真实合理的陈述,那就请'创造者'救救我吧。
如果我是 "创造者",我会建议你去买一朵 "七色花"。但这对你来说并不重要,你已经写了三个语句。3093+3=3096.我已经帮了你,现在帮我不要再在这里写了。
我在论坛上已经呆了很长时间,你的发言我看是一如既往的愚蠢和一成不变。你总是用片段的形式来讨论问题,总是纠正每个人的错误,在这里却发表如此愚蠢的言论。我不知道你为什么这么生气,因为我也是同样的用户,我也是为了补充知识而爬上论坛的初学者,而当这样一个拥有 3000 分的 "大师 "写东西给他听时,他也会听。而他不过是一个为自己设定目标、获得评分的傻瓜。他甚至没有想到,他的发言将读者引向了另一个方向。
我再次向您道歉。如果你再在我的回复中出现,我将坚持屏蔽你,你也将失去你那愚蠢的评分。尤其是向版主证明你的愚蠢是毫无价值的,你的回答总是离题万里,愚蠢至极。
现在已经是九月份了,标准库中 还没有这个类:)
顺便提一个关于该类代码本身的问题。在代码末尾定义它有什么意义?
因为在示例中根本没有用到它...现在已经是九月份了,标准库中 还没有这个类:)
顺便提一个关于该类代码本身的问题。在代码末尾定义它有什么意义?
因为在示例中根本没有用到它...