算法、解决方法、其性能的比较 - 页 17 1...1011121314151617181920212223 新评论 Sergey Dzyublik 2017.12.11 10:41 #161 在具体任务中:index => value 比CHashMap 更快的CArrayListCArrayList 占用的空间要少两倍以上,而且在添加新元素时,它的重新排列也比较少(CArrayList 的增长系数为2,而CHashMap 在目前的实现中约为1.2)。 而且在读取CArrayList 的结果时,也没有那么多的麻烦。 Vasiliy Sokolov 2017.12.11 10:46 #162 Sergey Dzyublik:在这个特定的任务中:index => valueCArrayList 比CHashMap 快。CArrayList 占用的空间要少两倍以上,而且在添加新元素时,它的重建次数也少(CArrayList 的增长系数为2,而CHashMap 在目前的实现中约为1.2)。 而且在读取CArrayList 的结果时,也没有那么多的麻烦。有一个神奇的属性:容量,顺便说一下,由于某种原因,CHashMap中没有这个属性(这是开发人员的一个严重疏忽)。通过指定它,我们绕过了重新分区。你可以在这个任务中指定它,所以我不认为有什么问题。 Vasiliy Sokolov 2017.12.11 10:47 #163 Sergey Dzyublik:在具体任务中:index => value 比CHashMap 更快的CArrayListCArrayList 占用的空间要少两倍以上,而且在添加新元素时,它的重新排列也比较少(CArrayList 的增长系数为2,而CHashMap 在目前的实现中约为1.2)。 而且在读取CArrayList 的结果时也没有那么多麻烦。为什么它们的规模系数不同,也是非常奇怪的。与简单的CArrayList 相比,重新排列CHashMap会更加困难。 Реter Konow 2017.12.11 10:47 #164 一个更加浓缩的版本。//+------------------------------------------------------------------+ //| Magic 2.mq5 | //| Peter Konow | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Peter Konow" #property link "https://www.mql5.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ int All_magics[]; int order_number; int Random_orders_of_strategy; //+------------------------------------------------------------------+ void Trading() { Random_orders_of_strategy = MathRand(); //---------------------------------------- //Имитируем открытие неопределенного количества ордеров стратегии. //---------------------------------------- for(int a1 = 0; a1 < Random_orders_of_strategy; a1++) { int this_magic = MathRand(); //---------------------------- order_number++; //--------------------------------- //Меняем размрер массива на каждой итерации. //--------------------------------- ArrayResize(All_magics,order_number); All_magics[order_number - 1] = this_magic; //--------------------------------- } //---------------------------------------- } //+------------------------------------------------------------------+ int Get_magic(int deal_number) { return(All_magics[deal_number - 1]); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { Trading(); //-------------------------- ulong t1 = GetMicrosecondCount(); Get_magic(1000); ulong t2 = GetMicrosecondCount(); //-------------------------- Print("Время исполнения функции Get_magic() при количестве ордеров ",Random_orders_of_strategy," равно ",t2 - t1); //-------------------------- Print("Random_orders_of_strategy ",Random_orders_of_strategy); Print("magic 1: ",Get_magic(1)," magic 2: ",Get_magic(2)," magic 3: ",Get_magic(3)); } //+------------------------------------------------------------------+ Alexandr Andreev 2017.12.11 10:49 #165 Реter Konow:一个更加浓缩的版本。现在让我们用模板<类型名 T> Реter Konow 2017.12.11 10:50 #166 Alexandr Andreev: 现在让我们用模板<类型名 T> 为什么? Yury Kulikov 2017.12.11 10:51 #167 Реter Konow:一个更加浓缩的版本。这名男子继续嘲弄... Vasiliy Sokolov 2017.12.11 10:52 #168 Реter Konow:一个更加浓缩的版本。你写了一些废话。本质上是通过索引访问数组 的一个变种。在现实中,交易数字是随机的,当你需要解决一个真正的问题时,你的整个例子将崩溃。 Alexandr Andreev 2017.12.11 10:52 #169 Реter Konow: 为了什么?嗯,有一些功能,如重写一个数组,添加一个新行...在标准版中,它们不是通用的,所以你必须一直重写它们。所以你会得到一个你自己的小函数的模板--某种常见的 Реter Konow 2017.12.11 10:52 #170 Yury Kulikov:这名男子继续嘲弄... 为什么某个问题的完美解决方案会被认为是欺凌?说真的,我不明白... 1...1011121314151617181920212223 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在具体任务中:index => value
比CHashMap 更快的CArrayList
CArrayList 占用的空间要少两倍以上,而且在添加新元素时,它的重新排列也比较少(CArrayList 的增长系数为2,而CHashMap 在目前的实现中约为1.2)。
而且在读取CArrayList 的结果时,也没有那么多的麻烦。
在这个特定的任务中:index => value
CArrayList 比CHashMap 快。
CArrayList 占用的空间要少两倍以上,而且在添加新元素时,它的重建次数也少(CArrayList 的增长系数为2,而CHashMap 在目前的实现中约为1.2)。
而且在读取CArrayList 的结果时,也没有那么多的麻烦。
有一个神奇的属性:容量,顺便说一下,由于某种原因,CHashMap中没有这个属性(这是开发人员的一个严重疏忽)。通过指定它,我们绕过了重新分区。你可以在这个任务中指定它,所以我不认为有什么问题。
在具体任务中:index => value
比CHashMap 更快的CArrayList
CArrayList 占用的空间要少两倍以上,而且在添加新元素时,它的重新排列也比较少(CArrayList 的增长系数为2,而CHashMap 在目前的实现中约为1.2)。
而且在读取CArrayList 的结果时也没有那么多麻烦。
为什么它们的规模系数不同,也是非常奇怪的。与简单的CArrayList 相比,重新排列CHashMap会更加困难。
一个更加浓缩的版本。
一个更加浓缩的版本。
现在让我们用
模板<类型名 T>
现在让我们用
模板<类型名 T>
一个更加浓缩的版本。
这名男子继续嘲弄...
一个更加浓缩的版本。
你写了一些废话。本质上是通过索引访问数组 的一个变种。在现实中,交易数字是随机的,当你需要解决一个真正的问题时,你的整个例子将崩溃。
为了什么?
嗯,有一些功能,如重写一个数组,添加一个新行...在标准版中,它们不是通用的,所以你必须一直重写它们。
所以你会得到一个你自己的小函数的模板--某种常见的
这名男子继续嘲弄...