Библиотеки qt и stl. Иерархия объектов, коллекция, итераторы
Методы контейнерных классов
Download 0.9 Mb.
|
1671980777134 Лаб раб 4п
- Bu sahifa navigatsiya:
- For all
Методы контейнерных классов.
Для корректной работы контейнерных классов необходимо предусмотреть два метода (для вставки нового элемента и просмотра всех элементов группы). Кроме этого, коллекция может содержать и другие методы, например, такие: Итератор. Итератор – это абстракция, которая ведет себя, как указатель с некоторыми ограничениями или без них, то есть, сохраняет все свойства своего прародителя. Указатель – это тоже итератор. В действительности, итераторы, в большинстве случаев, это объектные обертки указателей. Вот как примерно может выглядеть внутреннее устройство итератора (T* - указатель на необходимый класс (используется в шаблонах)): Но итератор представляет собой более высокий уровень абстракции, чем указатель, поэтому утверждение, что итератор – это указатель в некоторых случаях может быть неверно. А вот обратное будет верно всегда. Итераторы обеспечивают доступ к элементам в контейнере (коллекции). Итераторы для конкретного класса коллекции определяются внутри класса этой коллекции. Рассмотрим пример следующего итератора. For all (всех элементов набора) { <действия> } Такой цикл мог бы быть выполнен для всего набора, например, чтобы напечатать все элементы набора, или мог бы искать некоторый элемент, который удовлетворяет определенному условию, и в этом случае такой цикл может закончиться, как только будет найден требуемый элемент. Будем рассматривать итераторы как специальные методы класса-коллекции, позволяющие выполнять некоторые действия для всех объектов, включенных в группу. Примером итератора является метод Show. Удобно использовать итератор, который позволял бы выполнять над всеми элементами коллекции действия, заданные не одним из методов объекта, а произвольной функцией пользователя. Такой итератор можно реализовать, если эту функцию передавать ему через указатель на функцию. Определим тип указателя на функцию следующим образом: Download 0.9 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling