压缩容器多余容量

来源:互联网 发布:手机电影软件 编辑:程序博客网 时间:2024/04/29 02:00

解决方法:使用容器的拷贝构造函数和swap()函数(拷贝构造函数可以根据已有容器的大小决定一次性分配多少元素空间,不会产生冗余容量);

std::vector<int> vi;

for(int c = 0;c < 10;c++){

    vi.push_back(c);

}

std::vector<int>(vi).swap(vi);  //构造一个临时对象,然后与之交换元素