基于list循環(huán)刪除元素,迭代器失效的問題詳解
問題的關(guān)鍵是:在刪除元素之前,將當(dāng)前迭代器保存下來。當(dāng)然,這里僅支持list,因?yàn)閘ist的鏈?zhǔn)降膭h除一個元素,前面的指針指向下一個元素,vector和queue就不好辦了,它們或者是線性的或者是半線性半鏈?zhǔn)剑鲿?/p>
#include<iostream>
#include<list>
using namespace std;
int main()
{
	list<int *> l;
	for(int i=1;i<=100;i++)
	{
		int* temp=new int;
		*temp=i;
		l.push_back(temp);
	}
	list<int *>::iterator it=l.begin();
	list<int *>::iterator ittemp=l.begin();
	for(;it!=l.end();++it)
	{
		cout<<*(*it)<<endl;
	}
	it=l.begin();
	ittemp=l.begin();
	for(;it!=l.end();)
	{
		ittemp=it;
		++it;
		delete (*ittemp);
		l.erase(ittemp);
	}
	cout<<l.size()<<endl;
	return 0;
}
以上就是小編為大家?guī)淼幕趌ist循環(huán)刪除元素,迭代器失效的問題詳解全部內(nèi)容了,希望大家多多支持我們~
上一篇:淺談mwArray和一般數(shù)組的區(qū)別
欄 目:C語言
下一篇:xxx_cast類型轉(zhuǎn)換的實(shí)現(xiàn)方法
本文標(biāo)題:基于list循環(huán)刪除元素,迭代器失效的問題詳解
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/1899.html
您可能感興趣的文章
- 01-10基于atoi()與itoa()函數(shù)的內(nèi)部實(shí)現(xiàn)方法詳解
 - 01-10基于C語言sprintf函數(shù)的深入理解
 - 01-10異步http listener 完全并發(fā)處理懲罰http懇求的小例子
 - 01-10基于C程序啟動代碼的深入分析
 - 01-10基于getline()函數(shù)的深入理解
 - 01-10基于C語言fflush()函數(shù)的使用詳解
 - 01-10基于linux下獲取時間函數(shù)的詳解
 - 01-10基于C語言指令的深入分析
 - 01-10基于c中使用ftruncate()前需要fflush(),使用后需要rewind()的深入探討
 - 01-10基于C++ list中erase與remove函數(shù)的使用詳解
 


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段
 - 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
 
隨機(jī)閱讀
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
 - 01-10使用C語言求解撲克牌的順子及n個骰子
 - 01-10C#中split用法實(shí)例總結(jié)
 - 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
 - 08-05DEDE織夢data目錄下的sessions文件夾有什
 - 08-05織夢dedecms什么時候用欄目交叉功能?
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 04-02jquery與jsp,用jquery
 - 01-10delphi制作wav文件的方法
 - 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
 


