c++ vector 内存位置 20

第一种情况std::vector<int>vec;vec.push_back(10);第二种情况std::vector<int>vec(1,0);第三种情况std::ve... 第一种情况
std::vector<int> vec;
vec.push_back(10);

第二种情况
std::vector<int> vec(1,0);

第三种情况
std::vector<int> vec;
vec.resize(1,0)

第四种
vector<int> *vec=nullptr;
vec = new vector<int>[1];
vec[0].resize(1, 0)

这几种情况下,vec里面存放的元素分别是在栈上还是在堆上?
展开
 我来答
司空勃LX
2019-12-24 · TA获得超过667个赞
知道小有建树答主
回答量:846
采纳率:75%
帮助的人:54.9万
展开全部
之前看到这个问题,没有细究,过了两天被问到这个问题!!!

为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。
STL实现者在对vector进行内存分配时,预留了一些额外的存储区,用于存放新添加的元素。
size():成员指当前拥有的元素个数。
capacity():成员指当前(容器必须分配新存储空间之前)可以存储的元素个数。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式