考慮下面的語句:
int arr[]={1,2,3,4,5};
vector<int>vi;
copy(arr,arr+5,vi.begin());
該語句不會執行,因為沒有為vi分配存儲空間,而copy函數使用復制運算符將元素從源拷貝到目的。STL提供了三種可以將元素插入到目的的迭代器,成為插入迭代器。
back_inserter:這種迭代器調用容器的push_back操作替代賦值運算符。該迭代器的參數是容器本身。
front_inserter:該迭代器使用push_front操作替代賦值運算符。參數是容器本身。
inserter:該迭代器使用容器的insert操作替代賦值運算符。該迭代器有兩個參數:第一個參數是容器本身,第二個參數是容器的一個迭代器,用以指定插入位置。