使用std :: vector作为可更改的,完全填充的数组?

Joh*_*0te 2 c++ stl

我正在使用矢量.为了我的目的,我通常需要它有(n)个元素,只能使用index []运算符访问和修改.

在某个时刻,我的算法将决定它需要更多的空间,我需要放大这个向量来说...它的大小是2倍.

有没有办法我可以加倍大小,并使向量元素类型初始化向量默认值中的所有新空间?

基本上,我不希望手动插入元素以填充容量加倍后,我希望它的整个容量完全填充并在增加后默认初始化.据我所知,保留只是保留空间(并没有初始化其中的元素,所以虽然我可以使用它和循环插入,我希望有一个......更有趣?方式).

所以,我希望使用这个构造函数创建一个新的向量具有类似的效果:

std::vector<MyType> vec(2*oldvec.size(), MyType());
Run Code Online (Sandbox Code Playgroud)

除了我想在它的大小加倍之前保持已经在向量中的元素.