std::back_insert_iterator

来自cppreference.com
< cpp‎ | iterator
定义于头文件 <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 后附到为之创建它的容器的输出迭代器 (OutputIterator) 。凡在迭代器被赋值时调用容器的 push_back() 成员函数(无论是否解引用)。自增 std::back_insert_iterator 是空操作。

目录

[编辑] 成员类型

成员类型 定义
container_type Container

[编辑] 成员函数

构造新的 back_insert_iterator
(公开成员函数) [编辑]
插入对象到关联的容器
(公开成员函数) [编辑]
空操作
(公开成员函数) [编辑]
空操作
(公开成员函数) [编辑]

[编辑] 成员对象

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

[编辑] 成员类型

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

注意:在 C++17 前,这些成员类型要求通过从 std::iterator<std::output_iterator_tag,void,void,void,void> 继承而获得。

[编辑] 示例

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

输出:

3 6 7 5 3 5 6 2 9 1

[编辑] 参阅

创建拥有从参数推出的类型的 std::back_insert_iterator
(函数模板) [编辑]
用于在容器头部插入的迭代器适配器
(类模板) [编辑]
用于插入容器的迭代器适配器
(类模板) [编辑]