1. 程式人生 > >C++ 迭代器

C++ 迭代器

迭代器(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;
}

但是,不是每個容器都能這樣寫,而迭代器,每個容器都有,所以,迭代器是非常重要的。