std::insert_iterator
| Определён в заголовке <iterator>
|
||
template< class Container >
class insert_iterator : public std::iterator<std::output_iterator_tag,
void, void, void, void>
|
(до C++17) | |
template< class Container >
class insert_iterator;
|
(начиная с C++17) | |
std::insert_iterator — это LegacyOutputIterator который вставляет элементы в контейнер, для которого он был создан, в позицию, указанную переданным итератором. Функция-член insert() контейнера вызывается каждый раз, когда итератору (разыменованному или нет) присваивается значение. Инкремент std::insert_iterator не выполняет никаких действий.
Типы членов
| Тип члена | Определение | ||||
iterator_category
|
std:: output_iterator_tag | ||||
value_type
|
void | ||||
difference_type
|
|
||||
pointer
|
void | ||||
reference
|
void | ||||
container_type
|
Container
|
|
Типы членов
|
(до C++17) |
Функции-члены
создаёт новый
insert_iterator
(публичная функция-член) |
|
|
вставляет объект в ассоциированный контейнер
(публичная функция-член) |
|
|
пустая операция
(публичная функция-член) |
|
|
пустая операция
(публичная функция-член) |
Объекты-члены
| Имя члена | Определение |
container
(защищённый объект-член)
|
указатель типа
Container*
|
iter
(защищённый объект-член)
|
итератор типа
Container::iterator
(до C++20)
ranges::iterator_t<Container>
(начиная с C++20)
|
Пример
#include <algorithm>
#include <iostream>
#include <iterator>
#include <list>
#include <vector>
int main()
{
std::vector<int> v{1, 2, 3, 4, 5};
std::list<int> l{-1, -2, -3};
std::copy(v.begin(), v.end(), // may be simplified with std::inserter
std::insert_iterator<std::list<int>>(l, std::next(l.begin())));
for (int n : l)
std::cout << n << ' ';
std::cout << '\n';
}
Вывод:
-1 1 2 3 4 5 -2 -3
Смотрите также
|
создаёт
std::insert_iterator
с типом, выводимым из аргумента
(шаблон функции) |
|
|
адаптер итератора для вставки в конец контейнера
(шаблон класса) |
|
|
адаптер итератора для вставки в начало контейнера
(шаблон класса) |