函式模板
<iterator>

std::back_inserter

template <class Container>  back_insert_iterator<Container> back_inserter (Container& x);
構造後插迭代器
構造一個後插迭代器,該迭代器將新元素插入到 x 的末尾。

後插迭代器是一種特殊的輸出迭代器,它允許通常會覆蓋元素的演算法(如 copy)改為自動在容器末尾插入新元素。

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

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

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

引數

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

返回值

一個 back_insert_iterator,它將元素插入容器 x 的末尾。

示例

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

int main () {
  std::vector<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(),back_inserter(foo));

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

  return 0;
}

輸出

foo contains: 1 2 3 4 5 10 20 30 40 50


資料競爭

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

異常安全

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

另見