◐ Shell
clean mode source ↗

std::back_insert_iterator - cppreference.com

来自cppreference.com

在标头 <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 是一种输出迭代器,向创建它的容器追加元素。每当迭代器被赋值(无论是否解引用)就调用容器的 push_back() 成员函数。自增 std::back_insert_iterator 是空操作。

成员类型

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

void

(C++20 前)

std::ptrdiff_t

(C++20 起)
pointer void
reference void
container_type Container

要求通过从 std::iterator<std::output_iterator_tag, void, void, void, void> 继承获得成员类型 iterator_categoryvalue_typedifference_typepointerreference

(C++17 前)

成员函数

成员对象

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

示例

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

int main()
{
    std::vector<int> v;

    std::generate_n(
        std::back_insert_iterator<std::vector<int>>(v),
            // 也可使用 std::back_inserter 辅助函数
            // 也可使用 C++17 语法 std::back_insert_iterator(v)
        10,
        [n = 0]() mutable { return ++n; }
    );

    for (int n : v)
        std::cout << n << ' ';
    std::cout << '\n';
}

输出:

参阅