Шаблон:Архитектурная акустика/Реализация/IteratorAdapter2D body: различия между версиями
Перейти к навигации
Перейти к поиску
| Строка 18: | Строка 18: | ||
{{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::outer_iterator|Тип <tt>_OuterIterator</tt>.}} | {{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::outer_iterator|Тип <tt>_OuterIterator</tt>.}} | ||
{{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::inner_iterator|Тип <tt>_InnerIterator</tt>.}} | {{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::inner_iterator|Тип <tt>_InnerIterator</tt>.}} | ||
{{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::iterator_category| | {{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::iterator_category|[http://en.cppreference.com/w/cpp/iterator#Iterator_categories Категория] итератора. Эквивалентен <source lang="cpp">std::common_type_t< | ||
typename std::iterator_traits<outer_iterator>::iterator_category, | typename std::iterator_traits<outer_iterator>::iterator_category, | ||
typename std::iterator_traits<inner_iterator>::iterator_category | typename std::iterator_traits<inner_iterator>::iterator_category | ||
></source>}} | ></source>}} | ||
{{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::value_type|Тип <source lang="cpp" inline> | {{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::value_type|Тип <source lang="cpp" inline>typename std::iterator_traits<inner_iterator>::value_type></source>.}} | ||
{{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::reference|Тип <source lang="cpp" inline> | {{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::reference|Тип <source lang="cpp" inline>typename std::iterator_traits<inner_iterator>::reference></source>.}} | ||
{{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::pointer|Тип <source lang="cpp" inline> | {{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::pointer|Тип <source lang="cpp" inline>typename std::iterator_traits<inner_iterator>::pointer></source>.}} | ||
{{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::difference_type|Тип разницы между позициями итератора. Эквивалентен <source lang="cpp">std::common_type_t< | {{type_list_add|Архитектурная акустика/Реализация/IteratorAdapter2D::difference_type|Тип разницы между позициями итератора. Эквивалентен <source lang="cpp">std::common_type_t< | ||
typename std::iterator_traits<outer_iterator>::difference_type, | typename std::iterator_traits<outer_iterator>::difference_type, | ||
Версия 00:31, 7 января 2018
template <class _OuterIterator, class _InnerIterator = /*См. описание*/>
class IteratorAdapter2D;
| _OuterIterator | Тип внешнего итератора (второе измерение). |
| _InnerIterator | Тип вложенного итератора (первое измерение). По умолчанию тип определяется следующим образом.
Если тип _OuterIterator является обратным итератором, т.е. является специализацией шаблонов std::reverse_iterator или Chusov::Math::MatrixColumnReverseIterator, то тип _InnerIterator по умолчанию является типом возвращаемого значения метода rbegin (без параметров) класса _OuterIterator. В противном случае тип _InnerIterator по умолчанию является типом возвращаемого значения метода begin (без параметров) класса _OuterIterator. Если соответствующий метод не реализуется, то использование типа по умолчанию для _InnerIterator приводит к жесткой ошибке компиляции (без SFINAE). |
Открытые типы
| Тип | Описание |
|---|---|
| outer_iterator | Тип _OuterIterator. |
| inner_iterator | Тип _InnerIterator. |
| iterator_category | Категория итератора. Эквивалентен std::common_type_t<
typename std::iterator_traits<outer_iterator>::iterator_category,
typename std::iterator_traits<inner_iterator>::iterator_category
>
|
| value_type | Тип typename std::iterator_traits<inner_iterator>::value_type>. |
| reference | Тип typename std::iterator_traits<inner_iterator>::reference>. |
| pointer | Тип typename std::iterator_traits<inner_iterator>::pointer>. |
| difference_type | Тип разницы между позициями итератора. Эквивалентен std::common_type_t<
typename std::iterator_traits<outer_iterator>::difference_type,
typename std::iterator_traits<inner_iterator>::difference_type
>
|
Открытые методы
Методы, определенные, если тип iterator_category задает прямой итератор.
| Метод | Описание |
|---|---|
| (конструкторы) | Конструкторы класса IteratorAdapter2D. |
| (деструктор) | Деструктор класса IteratorAdapter2D. |
| operator= | Операторы присваивания с копированием и перемещением. |
| operator* | Оператор разыменовывания. |
| operator-> | Оператор косвенного доступа к элементам. |
| operator++ | Сдвиг позиции итератора на единицу от начала. |
| operator== | Проверка на эквивалентность итераторов. |
| operator!= | Проверка на неэквивалентность итераторов. |
| outer_base | Доступ к итератору в первом измерении, в соответствии с текущей позицией IteratorAdapter2D. |
| inner_base | Доступ к итератору во втором измерении, в соответствии с текущей позицией IteratorAdapter2D. |
Методы, определенные, если тип iterator_category также задает двунаправленный итератор.
| Метод | Описание |
|---|---|
| operator++ | Сдвиг позиции итератора на единицу от начала. |
| operator-- | Сдвиг позиции итератора на единицу к началу. |
Методы, определенные, если тип iterator_category также задает итератор с произвольным доступом.
| Метод | Описание |
|---|---|
| operator+= | Изменение позиции итератора на заданное число элементов к концу. |
| operator-= | Изменение позиции итератора на заданное число элементов к началу. |
| operator+ | Возвращает итератор, сдвинутый к концу относительно текущего на заданное число позиций. |
| operator- | Возвращает итератор, сдвинутый к началу относительно текущего на заданное число позиций, либо расстояние между двумя итераторами. |
| operator[] | Возвращает элемент, находящийся на заданном расстоянии относительно позиции итератора. |
| operator< | Проверка на то, чтобы текущий итератор находился ближе к началу контейнера по сравнению с итератором, который указан параметром. |
| operator<= | Проверка на то, чтобы текущий итератор находился ближе к началу контейнера по сравнению с итератором, который указан параметром, либо совпадал с ним. |
| operator> | Проверка на то, чтобы текущий итератор находился дальше от начала контейнера по сравнению с итератором, который указан параметром. |
| operator>= | Проверка на то, чтобы текущий итератор находился дальше от начала контейнера по сравнению с итератором, который указан параметром, либо совпадал с ним. |