Plain iterator: различия между версиями
Перейти к навигации
Перейти к поиску
(Новая страница: «{{NavBar|{{plain_iterator hierarchy}}}} {{plain_iterator_brief}} ===Типы=== {{type_list begin}} {{type_list add|iterator_category|[http://en.cppreference.com…») |
|||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
{{NavBar|{{plain_iterator | {{DISPLAYTITLE:plain_iterator}} | ||
{{NavBar|{{Системная иерархия:plain_iterator}}}} | |||
{{plain_iterator_brief}} | {{plain_iterator_brief}} | ||
===Типы=== | ===Типы=== | ||
{{ | {{type_list_begin_old_1}} | ||
{{ | {{type_list_add_old_1|iterator_category|[http://en.cppreference.com/w/cpp/iterator/iterator_tags std::bidirectional_iterator_tag]. Тип-идентификатор класса двунаправленного итератора.}} | ||
{{ | {{type_list_add_old_1|value_type|Тип элемента коллекции [[IPlainCollection]], которым является ссылка на объект с интерфейсом [[IPlainObject]].}} | ||
{{ | {{type_list_add_old_1|reference|Тип ссылки на ассоциированный с итератором объект. Эквивалентен <tt>value_type</tt>.}} | ||
{{ | {{type_list_add_old_1|const_reference|Тип ссылки на ассоциированный с итератором объект с доступом только на чтение.}} | ||
{{ | {{type_list_add_old_1|pointer|Тип указателя на ассоциированный с итератором объект.}} | ||
{{ | {{type_list_add_old_1|const_pointer|Тип указателя на ассоциированный с итератором объект с доступом только на чтение.}} | ||
{{ | {{type_list_add_old_1|size_type|Беззнаковый целочисленный четырехбайтовый тип размера.}} | ||
{{ | {{type_list_add_old_1|difference_type|Знаковый целочисленный тип разницы между двумя адресами в памяти.}} | ||
{{ | {{type_list_end_old_1}} | ||
===Методы=== | ===Методы=== | ||
{{function_list_begin}} | {{function_list_begin}} | ||
{{function_list_add|operator*|reference_name= | {{function_list_add|operator*|reference_name=plain_iterator::Оператор разыменования|description={{plain_iterator::Оператор разыменования brief}}}} | ||
{{function_list_add|operator->|reference_name= | {{function_list_add|operator->|reference_name=plain_iterator::Оператор косвенного доступа|description={{plain_iterator::Оператор косвенного доступа brief}}}} | ||
{{function_list_add|operator++|reference_name= | {{function_list_add|operator++|reference_name=plain_iterator::Оператор инкремента|description={{plain_iterator::Оператор инкремента brief}}}} | ||
{{function_list_add|operator--|reference_name= | {{function_list_add|operator--|reference_name=plain_iterator::Оператор декремента|description={{plain_iterator::Оператор декремента brief}}}} | ||
{{function_list_add|operator{{==}}|reference_name= | {{function_list_add|operator{{==}}|reference_name=plain_iterator::Оператор эквивалентности|description={{plain_iterator::Оператор эквивалентности brief}}}} | ||
{{function_list_add|operator!{{=}}|reference_name= | {{function_list_add|operator!{{=}}|reference_name=plain_iterator::Оператор неэквивалентности|description={{plain_iterator::Оператор неэквивалентности brief}}}} | ||
{{function_list_end}} | {{function_list_end}} | ||
Строка 27: | Строка 28: | ||
Фактически итерация по элементам коллекции реализуется двумя классами итераторов: <tt>const_plain_iterator</tt> и <tt>plain_iterator</tt>. Первый класс запрещает операции по изменению ассоциированного с ним элемента коллекции. | Фактически итерация по элементам коллекции реализуется двумя классами итераторов: <tt>const_plain_iterator</tt> и <tt>plain_iterator</tt>. Первый класс запрещает операции по изменению ассоциированного с ним элемента коллекции. | ||
{{relation_diagram|diagram=Отношения класса|content= | |||
{{plain_iterator_relations}} | |||
}} |
Текущая версия на 21:15, 3 декабря 2017
Компонент, реализующий двунаправленный итератор, для перечисления плоскостей вывода результатов моделирования, т.е. объектов, реализующих интерфейс 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. Первый класс запрещает операции по изменению ассоциированного с ним элемента коллекции.
