C++ 迭代器
阿新 • • 發佈:2019-01-11
迭代器(iterator)是一種檢查容器內元素並遍歷元素的資料型別。每種容器都定義了自己的迭代器,如(vector)。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vt(10.4);
vector<int>::iterator iter = vt.begin();
//begin()操作返回一個迭代器,指向第一個元素資料
//迭代器實際上是一個指標
*iter = 5;
iter ++;
*iter = 6;
for(vector<int>::iterator x = vt.begin();x != vt.end();x ++)
{
//end()是指向最後一個元素的下一個元素
cout << *x << endl;
}
return 0;
}
const_iterator只能讀取容器中的元素,而不能修改。
vector<int>::const_iterator iter = vt.begin();
*iter = 5;
iter ++;
*iter = 6;
如果改為這樣就錯了,因為咱們需要修改iter的值。
for(vector<int>::const_iterator x = vt.begin();x != vt.end();x ++)
{
cout << *x << endl;
}
一般的,我們習慣這樣寫,因為這時候程式只讀不修改。
雖然看似上面寫的複雜,不如如下簡單:
for(vector<int>::size_type x = 0;x != vt.size();x ++)
{
cout << vt[x] << endl;
}
但是,不是每個容器都能這樣寫,而迭代器,每個容器都有,所以,迭代器是非常重要的。