本文主要是介绍vector resize 和 reserve 的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言:
一般在容器声明的时候, 有人会给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 的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!