vector resize 和 reserve 的区别
程序员文章站
2022-03-01 22:17:33
...
前言:
一般在容器声明的时候, 有人会给vector 设置一大小, 会用 resize 和reserve 这两种都可以, 但具体的区别,和差异是什么?
reserve:
std::vector<int>vec;
vec.reserve(10);
std::cout<<vec.size()<<std::endl;
std::cout<<vec.capacity()<<std::endl;
vec[0] = 0;
vec[1] = 1;
size是0 capacity 是10. 他的作用是申请预留空间 (capacity)但是并未初始化。所以他的size 是0. 并且最后两行的赋值是无效的(因为并未初始化 size == 0),必须使用push_back 或insert
resize:
std::vector<int>vec1;
vec1.resize(10);
std::cout<<vec1.size()<<std::endl;
std::cout<<vec1.capacity()<<std::endl;
vec1[0] = 0;
vec1[1] = 1;
size 和 capacity 是10. 他的作用是申请预留空间 (capacity 并且初始化子元素。
所以最后两行 是可以进行 [] 赋值操作
上一篇: vector中的resize,reserve,assign的区别
下一篇: 冒泡排序-(正序,倒序)