如何在调整大小的std::矢量的最后一个元素后面插入



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

如何在调整大小的向量的空位置自动添加新元素?

如何在调整大小的向量的空位置自动添加新元素?

这就是你正在做的。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.

通过使用方法reserve而不是resizepush_back将在不重新分配内存的情况下完成此任务。

最新更新