Итератор - Большая Энциклопедия Нефти и Газа, статья, страница 3
Если у тебя прекрасная жена, офигительная любовница, крутая тачка, нет проблем с властями и налоговыми службами, а когда ты выходишь на улицу всегда светит солнце и прохожие тебе улыбаются - скажи НЕТ наркотикам. Законы Мерфи (еще...)

Итератор

Cтраница 3


Вместо того чтобы каждый класс, который должен проверять элементы агрегата, реализовывал обход самостоятельно, можно сопоставить класс-итератор с классом-агрегатом. Итератор должен содержать простые процедуры MoveFirst ( Переместиться в начало), MoveNext ( Переместиться на следующий элемент), EndOfList ( Переместиться в конец списка) и Cut rent Item ( Текущий элемент), чтобы обеспечить косвенный до ступ к списку. Новые классы могут включать в себя экземпляр класса итератора и использовать его методы для обхода элементов агрегата.  [31]

Контролирующие объекты и итераторы обеспечивают выполнение похожих функций, используя различные подходы Поскольку парадигма контролирующего объекта оставляет структуру агрегата внутри него, она обеспечивает лучшую инкапсуляцию. Итераторы полезны, если порядок обхода часто изменяется или если он должен определяться во время работы программы.  [32]

33 Использование итератора для косвенной связи со списком. [33]

Итератор ( iterator) обеспечивает альтернативный метод обхода элементов в объекте агрегата. Объект итератора обращается к агрегату для обхода его элементов и определяет порядок, в котором проверяются эле менты. Множество классов итератора может быть сопоставлено с классом агрегата, чтобы обеспечить различный порядок обход а эле ментов.  [34]

Принято ассоциировать объекты итераторы, или, короче - итераторы, с классами контейнерами. Когда написан итератор класса, легко получить следующий элемент этого класса. Итераторы обычно пишутся как друзья классов, с которыми они работают. Это предоставляет итераторам возможность прямого доступа к закрытым данным этих классов. Подобно тому, как книга, читаемая несколькими людьми, могла бы иметь в себе сразу несколько закладок, класс контейнер может иметь несколько одновременно работающих итераторов. Каждый итератор поддерживает свою собственную позицию информации.  [35]

Чтобы отыскать узел, на который указывает итератор, его нужно разыменовывать.  [36]

37 Использование итератора для косвенной связи со списком. [37]

Итератор должен знать порядок записи элементов, чтобы определить последовательность их обхода. Если агрегат - это связанный список, то объект итератора должен знать, что элементы сохранены в связанном списке, иуметьпо этому списку перемещаться. Так как итератору известны детали внутренней организации списка, он нарушает инкапсуляцию агрегата.  [38]

Фабрики наиболее полезны, когда два класса должны выполнять совместную работу. Например, класс-агрегатможет содержать метод фабрики, который создает для него итераторы Метод фабрики будет инициализировать итератор таким образом, чтобы он был готов работать с конкретной копией агрегата, который его создал.  [39]

Константность указывает, что мы не собираемся изменять узлы с помощью этого итератора.  [40]

Фабрики наиболее полезны, когда два класса должны выполнять совместную работу. Например, класс-агрегатможет содержать метод фабрики, который создает для него итераторы Метод фабрики будет инициализировать итератор таким образом, чтобы он был готов работать с конкретной копией агрегата, который его создал.  [41]

Кроме операторов READ и WRITE, Базисный ФОРТРАН располагает еще несколькими операторами, выполняющими вспомогательные функции: итераторы REWIND, BACKSPACE и ENDFILE для последовательного достуна и оператор FIND для прямого доступа. Такие операторы, как DEFINE FILE и FORMAT, - мы здесь не перечисляем, так как один из них был отнесен к описаниям, а другой по аналогии с ПЛ / 1 был рассмотрен выще в качестве составной части операторов ввода и вывода.  [42]

Генератор настроен на частоту 100 кГц, Он обеспечивает нормальную работу головок стирания, подмагничивания и записи. Ввиду того что потери в магнитопроводе подмагничиваютсй головки составляют примерно 70 - 80, , потерь стирающей головки, от i итератора требуется удвоенная выходная мощность. Несмотря на простоту схемы, он удовлетворяет этому требованию. Применение способа подмагничивания со стороны основы ленты ( кроссфилд) сопряжено с некоторым усложнением схемы и конструкции магнитофона. В этом случае ток подмагничивания подается только в подмагничивающую головку. Поэтому требуется высокая точность выполнения фильмового канала и головок, а также идентичность каналов. В противном случае весьма трудно получить оптимальный режим записи в обоих каналах одновременно. Чем больше отличаются параметры головок в стереоканалах, тем труднее совместить оптимум режимов записи.  [43]

Программа 11егстроитполные двоичные деревья, сохраненные в массиве. После щелчка по одной из кнопок, задающих направление обхода, программа при помощи метода фабрики Great elt era tor класса Тиишр1 1 еТиее создает соответствующий тип итератора в зависимости от нажатой кнопки.  [44]

Принято ассоциировать объекты итераторы, или, короче - итераторы, с классами контейнерами. Когда написан итератор класса, легко получить следующий элемент этого класса. Итераторы обычно пишутся как друзья классов, с которыми они работают. Это предоставляет итераторам возможность прямого доступа к закрытым данным этих классов. Подобно тому, как книга, читаемая несколькими людьми, могла бы иметь в себе сразу несколько закладок, класс контейнер может иметь несколько одновременно работающих итераторов. Каждый итератор поддерживает свою собственную позицию информации.  [45]



Страницы:      1    2    3    4