基于list循環(huán)刪除元素,迭代器失效的問題詳解
更新時間:2016年12月25日 09:43:52 投稿:jingxian
下面小編就為大家?guī)硪黄趌ist循環(huán)刪除元素,迭代器失效的問題詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
問題的關(guān)鍵是:在刪除元素之前,將當前迭代器保存下來。當然,這里僅支持list,因為list的鏈式的刪除一個元素,前面的指針指向下一個元素,vector和queue就不好辦了,它們或者是線性的或者是半線性半鏈式,迭代器會失效
#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)容了,希望大家多多支持腳本之家~
相關(guān)文章
C++?JSON庫?nlohmann::basic_json::accept的用法解析
nlohmann::basic_json::accept 是 Nlohmann JSON 庫中的一個方法,它用于檢查一個字符串是否可以解析為有效的 JSON,這篇文章主要介紹了C++?JSON庫nlohmann::basic_json::accept的用法,需要的朋友可以參考下2023-06-06C語言二叉樹常見操作詳解【前序,中序,后序,層次遍歷及非遞歸查找,統(tǒng)計個數(shù),比較,求深度】
這篇文章主要介紹了C語言二叉樹常見操作,結(jié)合實例形式詳細分析了基于C語言的二叉樹前序,中序,后序,層次遍歷及非遞歸查找,統(tǒng)計個數(shù),比較,求深度等相關(guān)操作技巧與注意事項,需要的朋友可以參考下2018-04-04