vector源碼(參考STL源碼--侯捷)-----空間分配導致叠代器失效
阿新 • • 發佈:2018-09-10
源碼 導致 -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源碼--侯捷)-----空間分配導致叠代器失效