迭代器(iterator)是一中檢查容器內元素并遍歷元素的數據類型。
每種容器類型都定義了自己的迭代器類型,如vector:
vector<int>::iterator iter;這條語句定義了一個名為iter的變量,它的數據類型是由vector<int>定義的iterator類型。
使用迭代器讀取vector中的每一個元素:
vector<int> ivec(10,1);
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)
{
*iter=2; //使用 * 訪問迭代器所指向的元素
}
const_iterator:
只能讀取容器中的元素,而不能修改。
for(vector<int>::const_iterator citer=ivec.begin();citer!=ivec.end();citer++)
{
cout<<*citer;
//*citer=3; error
}
vector<int>::const_iterator 和 const vector<int>::iterator的區別
const vector<int>::iterator newiter=ivec.begin();
*newiter=11; //可以修改指向容器的元素
//newiter++; //迭代器本身不能被修改
iterator的算術操作:
iterator除了進行++,--操作,可以將iter+n,iter-n賦給一個新的iteraor對象。還可以使用一個iterator減去另外一個iterator.
const vector<int>::iterator newiter=ivec.begin();
vector<int>::iterator newiter2=ivec.end();
cout<<"\n"<<newiter2-newiter;