Object iterator: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
Строка 4: Строка 4:


===Типы===
===Типы===
{{type_list begin}}
{{type_list_begin_old_1}}
{{type_list add|iterator_category|[http://en.cppreference.com/w/cpp/iterator/iterator_tags std::bidirectional_iterator_tag]. Тип-идентификатор класса двунаправленного итератора.}}
{{type_list_add_old_1|iterator_category|[http://en.cppreference.com/w/cpp/iterator/iterator_tags std::bidirectional_iterator_tag]. Тип-идентификатор класса двунаправленного итератора.}}
{{type_list add|value_type|Тип элемента коллекции [[IObjectCollection]], которым является ссылка на объект с интерфейсом [[IObject]].}}
{{type_list_add_old_1|value_type|Тип элемента коллекции [[IObjectCollection]], которым является ссылка на объект с интерфейсом [[IObject]].}}
{{type_list add|reference|Тип ссылки на ассоциированный с итератором объект. Эквивалентен <tt>value_type</tt>.}}
{{type_list_add_old_1|reference|Тип ссылки на ассоциированный с итератором объект. Эквивалентен <tt>value_type</tt>.}}
{{type_list add|const_reference|Тип ссылки на ассоциированный с итератором объект с доступом только на чтение.}}
{{type_list_add_old_1|const_reference|Тип ссылки на ассоциированный с итератором объект с доступом только на чтение.}}
{{type_list add|pointer|Тип указателя на ассоциированный с итератором объект.}}
{{type_list_add_old_1|pointer|Тип указателя на ассоциированный с итератором объект.}}
{{type_list add|const_pointer|Тип указателя на ассоциированный с итератором объект с доступом только на чтение.}}
{{type_list_add_old_1|const_pointer|Тип указателя на ассоциированный с итератором объект с доступом только на чтение.}}
{{type_list add|size_type|Беззнаковый целочисленный четырехбайтовый тип размера.}}
{{type_list_add_old_1|size_type|Беззнаковый целочисленный четырехбайтовый тип размера.}}
{{type_list add|difference_type|Знаковый целочисленный тип разницы между двумя адресами в памяти.}}
{{type_list_add_old_1|difference_type|Знаковый целочисленный тип разницы между двумя адресами в памяти.}}
{{type_list end}}
{{type_list_end_old_1}}


===Методы===
===Методы===

Текущая версия на 21:15, 3 декабря 2017

Компоненты на верхнем уровне \ Подсистема управления \ object_iterator

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

Типы

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

Методы

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

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

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