1. 程式人生 > >C++中迭代器的認識

C++中迭代器的認識

       在C++中,迭代器是個很重要的概念。迭代器的用法也比較靈活、簡單,但是要注意某些使迭代器失效的容器操作。通常在容器中動態插入、刪除。移動元素等時,會導致迭代器的失效,這

樣的直接後果是導致程式執行時嚴重的錯誤。如下:

#include<iostream>
#include<vector>
using namespace std;

int main()
{
	vector<int>MyVec;
	vector<int>::iterator iter=MyVec.end();
	for(int i=0;i<10;i++)
	{
		//下面有錯
		MyVec.insert(iter,i);

		//下面正確的
	//	MyVec.insert(MyVec.begin(),i);
	}
	for(iter=MyVec.begin();iter!=MyVec.end();++iter)
		cout<<(*iter)<<"   ";
	cout<<endl;
	return 0;
}
     上述iter的初值為MyVec.end(),但在iter前插入一個元素後,iter就會失效,從而導致類似懸垂指標的錯誤。為保正確,必須在容器動態變化後調整迭代器的值。

     持續更新中…

     歡迎大家交流與斧正!