目錄
int list[5] = ;
vectorvlist;
copy(list,list+5,vlist);
當使用上述方式進行賦值時,由於vlist沒有分配空間,而出錯。
解決方法使用遍歷陣列,並呼叫push_back方法將元素儲存到vlist中。
另外一種比較好的方式是通過插入迭代器完成。
三種插入迭代器:back_inserter, front_inserter,inserter
示例**:
#include #include #include #include #include #include #include #include using namespace std;
int main() ;
vectorvlist1;
vectorvlist2;
ostream_iteratorscreenout(cout, " ");
copy(lists,lists+8,back_inserter(vlist1));
cout << "vlist1:" << endl;
copy(vlist1.begin(),vlist1.end(),screenout);
cout << endl;
copy(vlist1.begin(),vlist1.end(),inserter(vlist2,vlist2.begin()));
cout << "vlist2:" << endl;
copy(vlist2.begin(),vlist2.end(),screenout);
cout << endl;
listlisttemp;
copy(vlist2.begin(),vlist2.end(),front_inserter(listtemp));
cout << "listtemp:" << endl;
copy(listtemp.begin(),listtemp.end(),screenout);
cout << endl;
return 0;
}
執行結果:
vlist1:
1 2 3 4 5 6 7 8
vlist2:
1 2 3 4 5 6 7 8
listtemp:
8 7 6 5 4 3 2 1
STL之迭代器
除了為每個容器定義的迭代器之外,標準庫在標頭檔案iterator中還定義了額外幾種迭代器,包括 1 插入迭代器 insert iterator 被繫結到乙個容器上,可用來向容器插入元素。2 流迭代器 stream iterator 被繫結到輸入輸出流,可用來遍歷所關聯的io流。3 反向迭代器 rev...
STL之迭代器
我們知道,迭代器常用來訪問容器中的元素。在使用迭代器的方式上來看,和指標非常的類似,甚至於就已經當作指標來使用了。事實上,迭代器的作用就是為了提供一種訪問資料的方式。容器 container 作為標準模板庫中的乙個核心內容,給我們提供了非常強大的資料結構的支援,以便於我們能夠更加方便 高效的實現我們...
STL之迭代器
1 每一種容器都有自己的迭代器 2 所有的迭代器介面都是一樣的 3 在整個標準庫中,經常使用形參為一對迭代器的建構函式 4 常用的迭代器操作 iter iter iter iter1 iter2,iter1 iter2 5 vector和deque容器的迭代器的額外操作 iter n,iter n,...