//by 鸟哥 清空vector的三种方法
//有疑问请留言或加群 1032082534
#include <iostream>  
#include <vector>
using namespace std;

int main(){
    vector <int> vecInt;
    for (int i=0;i<50;i++)
    {
        vecInt.push_back(i);
    }
    
    cout<<"capacity:"<<vecInt.capacity();   //j=64
    cout<<"size:"<<vecInt.size();          //i=50           
    cout<<endl;
    
    //1、使用clear ,清空元素,不回收空间
    vecInt.clear();
    cout<<"capacity:"<<vecInt.capacity();      //j=64
    cout<<"size:"<<vecInt.size();         //i=50
    cout<<endl;
    //2、erase循环删除,不回收空间
    for (int i=0;i<50;i++)
    {
        vecInt.push_back(i);
    }
    
    for ( vector <int>::iterator iter=vecInt.begin();iter!=vecInt.end();)
    {
        iter=vecInt.erase(iter);
    }
    cout<<"capacity:"<<vecInt.capacity();      //j=64
    cout<<"size:"<<vecInt.size();         //i=50   
    cout<<endl;

    //3、使用swap,清除元素并回收内存
    vector <int>().swap(vecInt);  //清除容器并最小化它的容量,
    //   vecInt.swap(vector<int>()) ;     另一种写法
    cout<<"capacity:"<<vecInt.capacity();      //j=0
    cout<<"size:"<<vecInt.size();         //i=0
    cout<<endl;
}

运行结果:

capacity:64size:50
capacity:64size:0
capacity:64size:0
capacity:0size:0

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐