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
(函数模板) |
|
|
用于容器尾部插入的迭代器适配器
(类模板) |
|
|
用于容器前端插入的迭代器适配器
(类模板) |