當(dāng)前位置:
首頁(yè) >
vector iterator not incrementable 的问题
發(fā)布時(shí)間:2025/3/21
45
豆豆
生活随笔
收集整理的這篇文章主要介紹了
vector iterator not incrementable 的问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
當(dāng)使用vector<>::iterator時(shí),有時(shí)會(huì)發(fā)生這種情況,iterator not incrementable
#include <list>using namespace std;int _tmain(int argc, _TCHAR* argv[]){list<int> slist;list<int>::iterator iter; slist.push_back(1); slist.push_back(5);slist.push_back(11);for(iter = slist.begin(); iter != slist.end(); ++iter){ if(11 == *iter){ slist.erase(iter);} }return 0;}
當(dāng)slist.erase(iter);當(dāng)要?jiǎng)h除的元素是slist中的最后一個(gè)的時(shí)候,執(zhí)行erase之后
iter就指向end了,再次進(jìn)入for循環(huán),執(zhí)行++iter就出錯(cuò)了。。。(erase會(huì)是迭代器失效)
如果在程序中對(duì)vector中的元素做了修改,添加或者刪除元素之后,迭代器就會(huì)失效,這時(shí)候就不要使用迭代器了。
總結(jié)
以上是生活随笔為你收集整理的vector iterator not incrementable 的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 调用c++
- 下一篇: vector中find 的用法