std::back_insert_iterator_C++中文网

定义于头文件 <iterator>

template< class Container >

class back_insert_iterator : public std::iterator< std::output_iterator_tag,

                                                   void, void, void, void >

(C++17 前)

template< class Container >
class back_insert_iterator;

(C++17 起)

std::back_insert_iterator 后附到为之创建它的容器的遗留输出迭代器 (LegacyOutputIterator) 。凡在赋值迭代器时调用容器的 push_back() 成员函数(无论是否解引用)。自增 std::back_insert_iterator 是无操作。

成员类型

 
成员类型 定义
iterator_category std::output_iterator_tag
value_type void
difference_type void
pointer void
reference void
container_type Container

成员函数

成员对象

 
成员名称 定义
container (受保护成员对象) 类型 Container* 的指针

示例

#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
 
int main()
{
    std::vector<int> v;
    std::generate_n(std::back_insert_iterator<std::vector<int>>(v), // std::back_inserter
                    10, [n = 0]() mutable { return ++n; });         // 可用以简化
    for (int n : v)
        std::cout << n << ' ';
    std::cout << '\n';
}

输出:

参阅