# std::back_inserter

< cpp‎ | iterator

定义于头文件 `<iterator>` |  |
template< class Container > std::back_insert_iterator<Container> back_inserter( Container& c ); |  | (C++20 前)
template< class Container > constexpr std::back_insert_iterator<Container> back_inserter( Container& c ); |  | (C++20 起)

`back_inserter` 为容器 `c` 构造 std::back_insert_iterator 的便利函数模板，拥有从参数类型推导的类型。

### 参数

c | - | 支持 `push_back` 操作的容器

### 返回值

能用于添加元素到容器 `c` 尾端的 std::back_insert_iterator 。

### 可能的实现

    template< class Container >
    std::back_insert_iterator<Container> back_inserter( Container& c )
    {
        return std::back_insert_iterator<Container>(c);
    }

### 示例

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

    int main()
    {
        std::vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        std::fill_n(std::back_inserter(v), 3, -1);
        for (int n : v)
            std::cout << n << ' ';
    }

输出：

    1 2 3 4 5 6 7 8 9 10 -1 -1 -1

### 参阅

back_insert_iterator | 用于在容器尾部插入的迭代器适配器 (类模板)
front_inserter | 创建拥有从实参推出的类型的 std::front_insert_iterator (函数模板)
inserter | 创建拥有从实参推出的类型的 std::insert_iterator (函数模板)