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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
{{NavBar|{{plain_iterator hierarchy}}}}
{{DISPLAYTITLE:plain_iterator}}
{{NavBar|{{Системная иерархия:plain_iterator}}}}
{{plain_iterator_brief}}
{{plain_iterator_brief}}


===Типы===
===Типы===
{{type_list begin}}
{{type_list begin}}
{{type_list add|iterator_category|[http://en.cppreference.com/w/cpp/iterator/iterator_tags std::bidirectional_iterator_tag] Типовый идентификатор двунаправленного итератора.}}
{{type_list add|iterator_category|[http://en.cppreference.com/w/cpp/iterator/iterator_tags std::bidirectional_iterator_tag]. Тип-идентификатор класса двунаправленного итератора.}}
{{type_list add|value_type|Тип элемента коллекции [[IPlainCollection]], которым является ссылка на объект с интерфейсом [[IPlainObject]].}}
{{type_list add|value_type|Тип элемента коллекции [[IPlainCollection]], которым является ссылка на объект с интерфейсом [[IPlainObject]].}}
{{type_list add|reference|Тип ссылки на ассоциированный с итератором объект. Эквивалентен <tt>value_type</tt>.}}
{{type_list add|reference|Тип ссылки на ассоциированный с итератором объект. Эквивалентен <tt>value_type</tt>.}}
Строка 16: Строка 17:
===Методы===
===Методы===
{{function_list_begin}}
{{function_list_begin}}
{{function_list_add|operator*|reference_name=plain_iterator_operator_indirection|description={{plain_iterator_operator_indirection_brief}}}}
{{function_list_add|operator*|reference_name=plain_iterator::Оператор разыменования|description={{plain_iterator::Оператор разыменования brief}}}}
{{function_list_add|operator->|reference_name=plain_iterator_operator_member_access|description={{plain_iterator_operator_member_access_brief}}}}
{{function_list_add|operator->|reference_name=plain_iterator::Оператор косвенного доступа|description={{plain_iterator::Оператор косвенного доступа brief}}}}
{{function_list_add|operator++|reference_name=plain_iterator_operator_increment|description={{plain_iterator_operator_increment_brief}}}}
{{function_list_add|operator++|reference_name=plain_iterator::Оператор инкремента|description={{plain_iterator::Оператор инкремента brief}}}}
{{function_list_add|operator--|reference_name=plain_iterator_operator_decrement|description={{plain_iterator_operator_decrement_brief}}}}
{{function_list_add|operator--|reference_name=plain_iterator::Оператор декремента|description={{plain_iterator::Оператор декремента brief}}}}
{{function_list_add|operator{{==}}|reference_name=plain_iterator_operator_equality|description={{plain_iterator_operator_equality_brief}}}}
{{function_list_add|operator{{==}}|reference_name=plain_iterator::Оператор эквивалентности|description={{plain_iterator::Оператор эквивалентности brief}}}}
{{function_list_add|operator!{{=}}|reference_name=plain_iterator_operator_inequality|description={{plain_iterator_operator_inequality_brief}}}}
{{function_list_add|operator!{{=}}|reference_name=plain_iterator::Оператор неэквивалентности|description={{plain_iterator::Оператор неэквивалентности brief}}}}
{{function_list_end}}
{{function_list_end}}



Версия 07:44, 10 января 2016

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

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

Типы

ТипОписание
iterator_categorystd::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. Первый класс запрещает операции по изменению ассоциированного с ним элемента коллекции.