Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Насчет for можно подробнее? У тебя вижу только CObject GetNextNode(void);
Или сделать просто поиск в массиве?
Да, просто линейный поиск в массиве.
Кстати, в generic реализации нет возможности даже перебрать элементы в CHashMap, так что не понимаю, как ее можно использовать в реальности.
Да, просто линейный поиск в массиве.
Кстати, в generic реализации нет возможности даже перебрать элементы в CHashMap, так что не понимаю, как ее можно использовать в реальности.
Типа foreach? У тебя есть CObject *GetNextNode(void), хотя я использовал только доступ по ключу
Вот первые данные по CHashMap, скоро и остальные сделаю и добавлю поиск
2018.02.21 16:27:12.049 TestHashTable (EURUSD,M5) Время добавления 10000000 элементов = 3.1564 сек, 0.3156 мкс/объект
2018.02.21 16:27:12.588 TestHashTable (EURUSD,M5) Время удаления 10000000 элементов = 0.5387 сек, 0.0539 мкс/объект
Данные теста CDictionary от Vasiliy Sokolov. Данные теста CHashMap считать недействительными, т.к. при поиске выдает ошибку. Пока не разобрался, почему.
2018.02.22 11:59:01.455 TestHashTable (EURUSD,M5) Время добавления 10000000 элементов = 15.1775 сек, 1.5178 мкс/объект
2018.02.22 11:59:05.112 TestHashTable (EURUSD,M5) Время поиска 10000000 элементов = 3.6547 сек, 0.3655 мкс/объект
2018.02.22 11:59:18.812 TestHashTable (EURUSD,M5) Время удаления 10000000 элементов = 13.6994 сек, 1.3699 мкс/объект
------------------------------------------------------
Разобрался с CHashMap из стандартной библиотеки, однако шустрый!
2018.02.22 12:56:51.143 TestHashTable (EURUSD,M5) CheckHashMap()
2018.02.22 12:56:54.466 TestHashTable (EURUSD,M5) Время добавления 10000000 элементов = 3.3208 сек, 0.3321 мкс/объект
2018.02.22 12:56:55.326 TestHashTable (EURUSD,M5) Время поиска 10000000 элементов = 0.8599 сек, 0.0860 мкс/объект
2018.02.22 12:56:55.901 TestHashTable (EURUSD,M5) Время удаления 10000000 элементов = 0.5742 сек, 0.0574 мкс/объект
2018.02.22 12:56:56.026 TestHashTable (EURUSD,M5) CheckDictVS()
2018.02.22 12:57:12.184 TestHashTable (EURUSD,M5) Время добавления 10000000 элементов = 16.1584 сек, 1.6158 мкс/объект
2018.02.22 12:57:16.305 TestHashTable (EURUSD,M5) Время поиска 10000000 элементов = 4.1205 сек, 0.4120 мкс/объект
2018.02.22 12:57:30.063 TestHashTable (EURUSD,M5) Время удаления 10000000 элементов = 13.7580 сек, 1.3758 мкс/объект
При попытке скомпилировать Cdictionary под МТ4 получаю ошибку компиляции
'union' - declaration without type dictionary2.mqh 95 4
'casting_struct' - declaration without type dictionary2.mqh 111 4
2 error(s), 0 warning(s) 3 1
Я не понимаю, MQL4 не поддерживает union, что ли??? В MQL5 все компилится без проблем. И что вообще означает дурацкое сообщение "declaration without type"???
--------------
При попытке скомпилировать Cdictionary под МТ4 получаю ошибку компиляции
'union' - declaration without type dictionary2.mqh 95 4
'casting_struct' - declaration without type dictionary2.mqh 111 4
2 error(s), 0 warning(s) 3 1
Я не понимаю, MQL4 не поддерживает union, что ли??? В MQL5 все компилится без проблем. И что вообще означает дурацкое сообщение "declaration without type"???
--------------
Alexey Volchanskiy:
И что вообще означает дурацкое сообщение "declaration without type"???
--------------
Часто такое выдаёт если ; где-то пропустил, или скобки не парные.
Для чистоты, - нужно экспериментировать на неупорядоченных значениях.
Как минимум, скорость вставок у CHashMap должна упасть.
Часто такое выдаёт если ; где-то пропустил, или скобки не парные.
Артем, так у меня голый файл из статьи https://www.mql5.com/ru/articles/1334#summary не компилируется под МТ4, под МТ5 все ок.
Для чистоты, - нужно экспериментировать на неупорядоченных значениях.
Как минимум, скорость вставок у CHashMap должна упасть.
Можно попробовать, но тогда надо создавать массив случайных чисел и из него копировать, чтобы не тратилось время на генерацию. Или замерить одну генерацию и потом вычесть это время, так красивее будет.