Cтраница 2
В качестве примера рассмотрим реализацию итератора в типе массива ( см. разд. [16]
Этот метод фабрика создает и возвращает соответствующий итератор. [17]
Обычно с классом-коллекцией ассоциируют объекты-итераторы, или просто итераторы. Итератор - это объект, который возвращает следующий элемент коллекции. После реализации итератора класса несложно написать выражение для получения следующего элемента контейнера. Итераторы пишут в виде друзей классов, для которых они выполняют итерации. Подобно тому, как книга, которую читают одновременно несколько читателей, может одновременно содержать несколько закладок, на контейнерном классе может действовать сразу несколько итераторов. [18]
Принято ассоциировать объекты итераторы, или, короче - итераторы, с классами контейнерами. Когда написан итератор класса, легко получить следующий элемент этого класса. Итераторы обычно пишутся как друзья классов, с которыми они работают. Это предоставляет итераторам возможность прямого доступа к закрытым данным этих классов. Подобно тому, как книга, читаемая несколькими людьми, могла бы иметь в себе сразу несколько закладок, класс контейнер может иметь несколько одновременно работающих итераторов. Каждый итератор поддерживает свою собственную позицию информации. [19]
Как видим, нам опять приходится иметь дело с итераторами. [20]
Если переменная типа PChar используется в коде VCL Win32 как итератор при обработке символов строки, ее без особых проблем можно заменить целочисленным индексом. NET определяется максимальным значением индекса, на 1 меньшим длины строки. [21]
Хотя понятие итератора было введено только при рассмотрении класса list, итераторы можно использовать и с векторными классами. Но вместо добавления и удаления элементов в конце списка, они добавляют и удаляют элементы в его начале. [22]
Класс, содержащий итератор, не должен обладать информацией, как создан итератор, он всего лишь использует методы итератора для обращения к элементам агрегата. [23]
Итераторы нарушают принцип инкапсуляции своих агрегатов в отличие от новых классов, которые содержат итераторы. [24]
Зануление должно применяться только совместно с заземлением в электроустановках с глухозаземлен-ной нейтралью трансформаторов и итераторов в сетях трехфазного тока, с глухо-заземленным выводом источника однофазного тока или с глухозаземленной средней точкой источника постоянного тока в трех-проводных сетях. Применение занулсння в электроустановках с изолированной нейтралью запрещается. При применении за-нуления в таких электроустановках замыкания одной из фаз на пезаземленпые части или непосредственно на землю поврежденные линии не отключаются. При этом напряжение неповрежденных фаз возрастает до значения, близкого к линейному; а напряжение нейтрали и всех зануленных частей - до значения, близкого к линейному, а напря-нию. Это обстоятельство приводит к повышению опасности поражения людей электрическим током. [25]
Тогда как последовательные контейнеры предназначены для последовательного и произвольного доступа к элементам с помощью индексов или итераторов, ассоциативные контейнеры разработаны для быстрого произвольного доступа к элементам с помощью ключей. Стандартная библиотека C предоставляет четыре ассоциативных контейнера: карту, мультикарту, множество и мультимножество. [26]
Класс, содержащий итератор, не должен обладать информацией, как создан итератор, он всего лишь использует методы итератора для обращения к элементам агрегата. [27]
Пропустим пока функцию main () и рассмотрим функцию ShowMap, которая открывает доступ к объектам карты с помощью константного итератора. [28]
Обычно с классом-коллекцией ассоциируют объекты-итераторы, или просто итераторы. Итератор - это объект, который возвращает следующий элемент коллекции. После реализации итератора класса несложно написать выражение для получения следующего элемента контейнера. Итераторы пишут в виде друзей классов, для которых они выполняют итерации. Подобно тому, как книга, которую читают одновременно несколько читателей, может одновременно содержать несколько закладок, на контейнерном классе может действовать сразу несколько итераторов. [29]
![]() |
Использование итератора для косвенной связи со списком. [30] |