vector iterator not incrementable 的问题
生活随笔
收集整理的這篇文章主要介紹了
vector iterator not incrementable 的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當使用vector<>::iterator時,有時會發生這種情況,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;}
當slist.erase(iter);當要刪除的元素是slist中的最后一個的時候,執行erase之后
iter就指向end了,再次進入for循環,執行++iter就出錯了。。。(erase會是迭代器失效)
如果在程序中對vector中的元素做了修改,添加或者刪除元素之后,迭代器就會失效,這時候就不要使用迭代器了。
總結
以上是生活随笔為你收集整理的vector iterator not incrementable 的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 调用c++
- 下一篇: vector中find 的用法