vector中 resize()和reserve()
1.resize()改变容器大小
2.reserve()容器大小管理
3.例子
#include <iostream> #include<vector> using namespace std; int main(){ vector<int> a(5,1); cout<<a.size()<<" "<<a.capacity()<<endl; //5 5 //表示定义的向量的size和容量 a.resize(10); cout<<a.size()<<" "<<a.capacity()<<endl; //10 10 //resize会改变容器中元素的数目,同时元素的容量也增大了 a.resize(6); cout<<a.size()<<" "<<a.capacity()<<endl; //6 10 //resize改变元素数目,后面的元素被删除,但是不会更改容量 a.reserve(20); cout<<a.size()<<" "<<a.capacity()<<endl; //6 20 //reserve不改变元素数目,增大了元素的容量 a.reserve(10); cout<<a.size()<<" "<<a.capacity()<<endl; //6 20 //当reserve更改的小于当前容量大小时,什么也不做,容量不会发生改变。 a.reserve(3); cout<<a.size()<<" "<<a.capacity()<<endl; //6 20 //当reserve更改的小于当前元素数目时,什么也不做,元素数目和容量都不会发生改变。 return 0; }
4.resize不能再次初始化
int main(){ vector<int> a; a.resize(5,0); for(int i=0;i<a.size();i++){ a[i]=5; } a.resize(5,0); for(auto b:a) cout<<b<<" "; return 0; } //输出: 5 5 5 5 5