1. 程式人生 > >vector源碼(參考STL源碼--侯捷)-----空間分配導致叠代器失效

vector源碼(參考STL源碼--侯捷)-----空間分配導致叠代器失效

源碼 導致 -s html code push_back www using ron

vector源碼1(參考STL源碼--侯捷) vector源碼2(參考STL源碼--侯捷) vector源碼(參考STL源碼--侯捷)-----空間分配導致叠代器失效
#include<bits/stdc++.h>
using namespace std;

int main(){
    vector<int> v(3,3);
    vector<int>::iterator it=v.begin();
    cout<<v.size()<<"  "<<v.capacity()<<endl;//3 3
    int
k=0; while(it!=v.end()) { cout<<*it<< ; k++; ++it; } cout<<endl; cout<<"k: "<<k<<endl; v.push_back(7); v.push_back(8); v.push_back(9); v.push_back(5); cout<<v.size()<<" "<<v.capacity()<<endl;//
7 12 while(it!=v.end()) { cout<<*it<< ; k++; ++it; } cout<<endl; cout<<"k: "<<k<<endl; return 0; }

輸出:

技術分享圖片

可以發現因為空間分配的原因,該叠代器已經失效了!!!!,詳細參考 源碼2 。

vector源碼(參考STL源碼--侯捷)-----空間分配導致叠代器失效