函式模板
<iterator>

std::front_inserter

template <class Container>  front_insert_iterator<Container> front_inserter (Container& x);
構造前向插入迭代器
構造一個將新元素插入到 x 開頭的前向插入迭代器

前向插入迭代器 是一種特殊的輸出迭代器,它允許通常覆蓋元素的演算法(例如 copy)自動在容器開頭插入新元素。

x 的型別需要有一個 push_front 成員函式(例如標準容器 dequelist)。

對返回的迭代器使用賦值運算子(無論是解引用還是未解引用),都會導致容器擴充套件一個元素,該元素將被初始化為賦給它的值。

返回的迭代器支援輸出迭代器的所有其他典型操作,但這些操作沒有效果:所有賦給它的值都會插入到容器的開頭。

引數

x
迭代器將插入新元素的容器。
Container 應為定義了 push_front 成員的容器類。

返回值

一個 front_insert_iterator,它將元素插入容器 x 的開頭。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// front_inserter example
#include <iostream>     // std::cout
#include <iterator>     // std::front_inserter
#include <deque>        // std::deque
#include <algorithm>    // std::copy

int main () {
  std::deque<int> foo,bar;
  for (int i=1; i<=5; i++)
  { foo.push_back(i); bar.push_back(i*10); }

  std::copy (bar.begin(),bar.end(),std::front_inserter(foo));

  std::cout << "foo contains:";
  for ( std::deque<int>::iterator it = foo.begin(); it!= foo.end(); ++it )
	  std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

輸出

50 40 30 20 10 1 2 3 4 5


資料競爭

除了透過獲取其引用來訪問容器(x)外,呼叫本身不會訪問它,但返回的物件可用於訪問或修改它。

異常安全

除非 x 在應用一元 operator& 時丟擲異常,否則此函式永遠不會丟擲異常(無異常保證)。

另見