Обсуждение статьи "Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным"
В начале написал, что это действительно ошибка, но потом посмотрел график внимательней: нет, все правильно. На оси Y указано время, чем оно больше - тем медленнее работает добавление элемента. На графике видно, что добавление миллиона элементов в CArrayObj занимает 5 секунд, тогда как добавление этого же количества элементов в CDictionary занимает 1 секунду. Т.е. конкретно в задачах с большим последовательным добавлением элементов, модель перераспределения памяти у CDictionary выигрывает по сравнению со стандартной моделью перераспределения в CArrayObj, что и требовалось показать.
нет все таки ошибка. но это для меня уже не важно, а вот для остальных читателей да. которые также будут разбираться как и я с начала. То должно быть написано очень точно потому как уводит в далекое заблуждение. ))))
цитата: Он использует макрос TEST_ARRAY. Если он определен, тест выполняет операции над CArrayObj, если нет - над CDictionary. Первый тест на добавление новых элементов выигрывает CDictionary.Его модель перераспределения памяти в данном конкретном случае оказалась лучше:
ДОЛЖНО БЫТЬ: Он использует макрос TEST_ARRAY. Если он "НЕ" определен, тест выполняет операции над CArrayObj, если "ДА" - над CDictionary. Первый тест на добавление новых элементов выигрывает CDictionary.Его модель перераспределения памяти в данном конкретном случае оказалась лучше:
Вся ошибка непосредственно в коде с начало идет заполнение списка через CDictionary, а потом если не определен макрос TEST_ARRAY идет CArrayObj вот здесь и получилась ошибка . Это от усталости над работой над одним материалом.
НО ОТЛИЧНЫМ И ТРУДОЕМКИМ. МНЕ ОЧЕНЬ ПОМОГ РАЗОБРАТЬСЯ. В УКАЗАТЕЛЯХ И СОЗДАНИЯХ ОБЪЕКТОВ. НУ ОЧЕНЬ ТЯЖЕЛО ВЪЕЗЖАЛ. А НУЖНО ЗА КОРОТКИЙ СРОК......