如何在调整大小的std :: vector的最后一个元素之后插入?

时间:2013-12-04 07:12:45

标签: c++ vector std push-back

我知道std::vector中我最初需要多少空间。所以我使用.resize()将新向量设置为该大小。但是在之后使用.push_back()时,它会在分配大小的末尾添加元素,将其增加一个。

如何在已调整大小的矢量的空位中自动添加新元素?

2 个答案:

答案 0 :(得分:6)

  

如何在已调整大小的矢量的空位中自动添加新元素?

这就是你在做什么。 resize使用值初始化元素填充新空间,因此没有“空位”。您似乎需要拨打std::vector::reserve

std::vector<int> v{1,2,3,4}; // size = 4
v.reserve(100); // size = 4, capacity = 100
v.push_back(5); // no re-allocations. size  5.

答案 1 :(得分:3)

使用方法reserve代替resize,您的push_back无需重新分配内存即可完成工作。

相关问题