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 
原文地址:https://www.cnblogs.com/BlueBlueSea/p/14174905.html