程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 實戰c++中的vector系列--可怕的迭代器失效之二(刪除vector中元素)

實戰c++中的vector系列--可怕的迭代器失效之二(刪除vector中元素)

編輯:C++入門知識

實戰c++中的vector系列--可怕的迭代器失效之二(刪除vector中元素)


直接撸代碼:

#include
#include
using namespace std;
int main()
{
    vector v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);

    std::vector::iterator iter1 = v.begin() + 2;
    v.erase(v.begin() + 1);
    int n = *iter1;

    return 0;
}

erase後,迭代器失效了。

vector迭代器的幾種失效的情況:
1.當插入(push_back)一個元素後,end操作返回的迭代器肯定失效。
2.當插入(push_back)一個元素後,capacity返回值與沒有插入元素之前相比有改變,則需要重新加載整個容器,此時first和end操作返回的迭代器都會失效。
3.當進行刪除操作(erase,pop_back)後,指向刪除點的迭代器全部失效;指向刪除點後面的元素的迭代器也將全部失效。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved