# std::front_inserter

< cpp‎ | iterator

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

`front_inserter` 是为类型从参数类型推导的容器 `c` 构造 std::front_insert_iterator 的便利函数模板。

### 参数

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

### 返回值

能用于添加元素到容器 `c` 起始的 std::front_insert_iterator

### 可能的实现

    template< class Container >
    std::front_insert_iterator<Container> front_inserter( Container& c )
    {
        return std::front_insert_iterator<Container>(c);
    }

### 示例

    #include <vector>
    #include <deque>
    #include <iostream>
    #include <iterator>
    #include <algorithm>
    int main()
    {
        std::vector<int> v{1, 2, 3, 4, 5};
        std::deque<int> d;
        std::copy(v.begin(), v.end(), std::front_inserter(d));
        for(int n : d)
            std::cout << n << ' ';
    }

输出：

    5 4 3 2 1

### 参阅

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