Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опубликована статья От начального до среднего уровня: Очереди, списки и деревья (III):
Функция ArrayInsert из библиотеки MQL5 предназначена для вставки новых данных в существующий массив. Пока всё хорошо. Однако у этой функции есть одна небольшая особенность: когда мы вставляем новые данные в конец уже существующего массива, данные просто копируются внутрь массива. По сути, это эквивалентно использованию функции ArrayCopy.
Однако, когда мы хотим добавить элементы в середину существующего массива или в начало того же массива, происходит нечто иное. В этом случае функция ArrayInsert выделит новый блок памяти, а затем скопирует некоторые элементы в этот новый блок. Это добавит новые элементы, которые мы вставили в недавно назначенный блок. Только после этого он скопирует оставшуюся часть исходного массива внутрь выделенного блока. Следовательно, при использовании очень большого массива время выполнения может быть довольно длительным. Однако, учитывая особенности современных материнских плат и шину данных, перемещаемые блоки должны быть действительно большими, чтобы разница была заметна. Или, как минимум, нам нужно выполнить несколько вставок, чтобы время обработки можно было ощутить.
Однако в начале эры компьютеров обработка данных не была столь быстрой. Шина данных работала медленно, и эти перемещения, даже с небольшим количеством элементов, требовали много времени. Таким образом, инженеры и ученые разработали решение данной проблемы. И это решение — именно списки. А теперь вернёмся к вопросу о коде 01. Когда список будет полностью сформирован, в памяти останется нечто подобное тому, что показано ниже:
Автор: CODE X