Открыть главное меню

Изменения

14 байт убрано ,  7 лет назад
Индексный массив -> массив, треб. источника и по мелочи
 
=== Отличия от индексации ===
В процедурных языках программирования широко используется [[Индексный массив|индексация]], основанная на [[счётчик цикла|счётчике цикла]] для перебора всех элементов последовательности, например, массива[[массив]]а. Хотя индексация может использоваться совместно с некоторыми объектно-ориентированными контейнерами, использование итераторов даёт свои преимущества:
 
* Индексация не подходит для некоторых структур данных, в частности, для структур данных с медленным [[произвольный доступ|произвольным доступом]] или вообще без поддержки такового (например, [[Список (информатика)|список]] или [[Дерево (структура данных)|дерево]]).
* Итератор может накладывать дополнительные ограничения доступа, как например, проверка отсутствия пропусков элементов или повторного перебора одного и того же элемента.
 
* Итератор позволяет модифицировать объекты контейнера без влияния на сам итератор{{источник}}. Например, после того, как итератор уже «прошёл» первый элемент, можно вставить дополнительные элементы в начало контейнера без каких-либо нежелательных последствий. При использовании индексации это весьма проблематично из-за смены индексных номеров индексов.
 
Возможность модификации контейнера во время итерации его элементов стала необходимой в современном [[Объектно-ориентированное программирование|объектно-ориентированном программировании]], где взаимосвязи между объектами и последствия выполнения операций могут быть не слишком очевидными. Использование итератора избавляет от этих видов проблем.