Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Определяет предопределенные итераторы итераторы потоков, примитивы итератора и вспомогательные шаблоны.
Требования
Заголовок: <iterator>
Пространство имен: std
Замечания
Итераторы — это обобщение указателей, которые позволяют программе C++ работать с различными структурами данных в однородном режиме. Вместо того чтобы работать с определенными типами данных, алгоритмы работают с диапазоном значений, как указано типом итератора. Алгоритмы могут работать с любой структурой данных, удовлетворяющей требованиям итератора.
В C++20 есть шесть категорий итераторов. Итераторы упорядочены в иерархии возможностей. Их возможности задаются концепциями C++20. Описание различных итераторов и их возможностей см . в разделе "Основные понятия итератора"
Visual Studio добавил расширения в итераторы стандартной библиотеки C++ для поддержки отладки проверяемых и снятых итераторов. Дополнительные сведения см. в разделе Безопасные библиотеки: стандартная библиотека C++.
Участники
Функции
| Имя | Описание |
|---|---|
advance |
Увеличивает итератор на указанное количество позиций. |
back_inserter |
Создает итератор, может вставлять элементы с обратной стороны указанного контейнера. |
begin |
Извлекает итератор для первого элемента в указанном контейнере. |
cbegin |
Извлекает итератор только для чтения в первый элемент в указанном контейнере. |
cend |
Извлекает итератор только для чтения в элемент, который следует последнему элементу в указанном контейнере. |
crbegin |
Получите обратный итератор только для чтения до начала указанного контейнера. |
crend |
Получите sentinel в конце возвращаемого crbegin() значения. |
data |
Получите указатель на первый элемент в указанном контейнере. |
distance |
Указывает количество приращений между позициями, которые адресуют два итератора. |
end |
Извлекает итератор для элемента, следующего за последним элементом в указанном контейнере. |
empty |
Проверьте, пуст ли указанный контейнер. |
front_inserter |
Создает итератор, может вставлять элементы с передней стороны указанного контейнера. |
inserter |
Адаптер итератора, добавляющий в контейнер новый элемент в указанной позиции. |
make_checked_array_iterator |
Создает объект checked_array_iterator , который можно использовать другими алгоритмами. Примечание. Эта функция — расширение Майкрософт для стандартной библиотеки C++. Код, реализованный с помощью этой функции, не переносимый в среды сборки C++ Standard, которые не поддерживают это расширение Майкрософт. |
make_move_iterator |
Возвращает итератор перемещения, содержащий предоставленный итератор в качестве сохраненного базового итератора. |
make_unchecked_array_iterator |
Создает объект unchecked_array_iterator , который можно использовать другими алгоритмами. Примечание. Эта функция — расширение Майкрософт для стандартной библиотеки C++. Код, реализованный с помощью этой функции, не переносимый в среды сборки C++ Standard, которые не поддерживают это расширение Майкрософт. |
next |
Выполняет итерацию заданное число раз и возвращает новую позицию итератора. |
prev |
Выполняет обратную итерацию заданное число раз и возвращает новую позицию итератора. |
rbegin |
Получите обратный итератор к началу указанного контейнера. |
rend |
Получите обратный итератор в sentinel в конце указанного контейнера. |
size |
Получение количества элементов. |
Операторы
| Имя | Описание |
|---|---|
operator!= |
Проверяет, не равен ли объект итератора слева от оператора итератору справа. |
operator== |
Проверяет объект итератора в левой части оператора на равенство объекту итератора в правой части. |
operator< |
Определяет, верно ли, что объект итератора в левой части оператора меньше объекта итератора в правой части. |
operator<= |
Определяет, верно ли, что объект итератора в левой части оператора меньше или равен объекту итератора в правой части. |
operator> |
Определяет, верно ли, что объект итератора в левой части оператора больше объекта итератора в правой части. |
operator>= |
Определяет, верно ли, что объект итератора в левой части оператора больше или равен объекту итератора в правой части. |
operator+ |
Добавление смещения к итератору и возврат нового итератора reverse_iterator, который обращается к вставленному элементу в новой позиции смещения. |
operator- |
Вычитает один итератор из другого и возвращает разницу. |
Классы
| Имя | Описание |
|---|---|
back_insert_iterator |
Шаблон класса описывает выходной итератор объекта. Он вставляет элементы в контейнер типа Container, к которому он обращается через защищенный pointer объект, который он хранит, называется контейнером. |
bidirectional_iterator_tag |
Класс, предоставляющий тип возвращаемого значения для iterator_category функции, представляющей двунаправленный итератор. |
checked_array_iterator |
Класс, который обращается к массиву при помощи проверенного итератора произвольного доступа. Примечание. Этот класс — расширение Майкрософт для стандартной библиотеки C++. Код, реализованный с помощью этой функции, не переносимый в среды сборки C++ Standard, которые не поддерживают это расширение Майкрософт. |
forward_iterator_tag |
Класс, предоставляющий тип возвращаемого значения для iterator_category функции, представляющей итератор пересылки. |
front_insert_iterator |
Шаблон класса описывает выходной итератор объекта. Он вставляет элементы в контейнер типа Container, к которому он обращается через защищенный pointer объект, который он хранит, называется контейнером. |
input_iterator_tag |
Класс, предоставляющий тип возвращаемого значения для iterator_category функции, представляющей входной итератор. |
insert_iterator |
Шаблон класса описывает выходной итератор объекта. Он вставляет элементы в контейнер типа Container, к которому он обращается через защищенный pointer объект, который он хранит, называется контейнером. Он также сохраняет защищенный iterator объект класса Container::iterator, называемый iter. |
istream_iterator |
Шаблон класса описывает входной итераторный объект. Он извлекает объекты класса Ty из входного потока, к которому он обращается через объект, на который он хранит, указателя basic_istream<Elem, Tr>типа. |
istreambuf_iterator |
Шаблон класса описывает входной итераторный объект. Он вставляет элементы класса Elem в выходной буфер потока, к которому он обращается через объект, в котором он хранит тип pointer basic_streambuf<Elem, Tr>. |
iterator |
Шаблон класса используется в качестве базового типа для всех итераторов. |
iterator_traits |
Вспомогательный класс шаблона, предоставляющий критические типы, связанные с разными типами итераторов, на которые они могут ссылаться аналогичным образом. |
move_iterator |
Объект move_iterator содержит итератор произвольного доступа типа RandomIterator. Его поведение аналогично поведению итератора произвольного доступа, кроме случаев отмены ссылки. Результат operator* неявно приводится к value_type&&:, чтобы обеспечить rvalue reference. |
ostream_iterator |
Шаблон класса описывает выходной итератор объекта. Он вставляет объекты класса Type в выходной поток, к которому он обращается через объект, в котором он хранит тип pointer basic_ostream<Elem, Tr>. |
ostreambuf_iterator |
Шаблон класса описывает выходной итератор объекта. Он вставляет элементы класса Elem в выходной буфер потока, к которому он обращается через объект, на который он хранит, указателя basic_streambuf<Elem, Tr>типа. |
output_iterator_tag |
Класс, предоставляющий тип возвращаемого значения для iterator_category функции, представляющей итератор выходных данных. |
random_access_iterator_tag |
Класс, предоставляющий тип возвращаемого значения для iterator_category функции, представляющей итератор случайного доступа. |
reverse_iterator |
Шаблон класса описывает объект, который ведет себя как итератор случайного доступа, только в обратном направлении. |
unchecked_array_iterator |
Класс, который обращается к массиву при помощи непроверенного итератора произвольного доступа. Примечание. Этот класс — расширение Майкрософт для стандартной библиотеки C++. Код, реализованный с помощью этой функции, не переносимый в среды сборки C++ Standard, которые не поддерживают это расширение Майкрософт. |
Основные понятия
В пространстве имен определены std следующие понятия. Они применяются к итераторам, а также относятся к категориям итератора для диапазонов, описанных в <ranges> концепциях.
| Концепция итератора | Description |
|---|---|
bidirectional_iteratorC++20 |
Указывает итератор, который может считывать и записывать как вперед, так и назад. |
contiguous_iteratorC++20 |
Указывает итератор, элементы которого являются последовательными в памяти, одинаковым размером и могут быть доступны с помощью арифметики указателя. |
forward_iteratorC++20 |
Указывает итератор, который может читать (и, возможно, записывать) несколько раз. |
input_iteratorC++20 |
Указывает итератор, который можно прочитать по крайней мере один раз. |
input_or_output_iteratorC++20 |
Основа итеромии концепции таксономии. |
output_iterator |
Указывает итератор, в который можно написать. |
random_access_iteratorC++20 |
Указывает итератор, который можно читать и записывать по индексу. |
sentinel_forC++20 |
Указывает sentinel для типа итератора. |
sized_sentinel_forC++20 |
Указывает, что итератор и его sentinel можно вычитать (используя -), чтобы найти их разницу в постоянном времени. |
См. также
Справочник по файлам заголовков
Потокобезопасность в стандартной библиотеке C++
Справочник по стандартной библиотеке C++