plain_iterator

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Компоненты на верхнем уровне \ Подсистема управления \ plain_iterator

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

Типы

Тип Описание
iterator_category std::bidirectional_iterator_tag. Тип-идентификатор класса двунаправленного итератора.
value_type Тип элемента коллекции IPlainCollection, которым является ссылка на объект с интерфейсом IPlainObject.
reference Тип ссылки на ассоциированный с итератором объект. Эквивалентен value_type.
const_reference Тип ссылки на ассоциированный с итератором объект с доступом только на чтение.
pointer Тип указателя на ассоциированный с итератором объект.
const_pointer Тип указателя на ассоциированный с итератором объект с доступом только на чтение.
size_type Беззнаковый целочисленный четырехбайтовый тип размера.
difference_type Знаковый целочисленный тип разницы между двумя адресами в памяти.

Методы

operator* Прямое разыменование итератора.
operator-> Оператор косвенного доступа к интерфейсу IPlainObject через итератор.
operator++ Выполняет инкремент итератора, под которым понимается связывание итератора со следующим элементом коллекции IPlainCollection.
operator-- Выполняет декремент итератора, под которым понимается связывание итератора со предыдущим элементом коллекции IPlainCollection.
operator== Проверка двух итераторов коллекции на эквивалентность.
operator!= Проверка двух итераторов коллекции на неэквивалентность.

Итератор удовлетворяет требованиям DefaultConstructible, CopyConstructible и CopyAssignable.

Фактически итерация по элементам коллекции реализуется двумя классами итераторов: const_plain_iterator и plain_iterator. Первый класс запрещает операции по изменению ассоциированного с ним элемента коллекции.

Файл mwstore://local-backend/local-public/diagrams/archive/20250507231110!Diagrams_bf89e2f1662747ef2228dcacfce9e76f.jpg уже существует.