我正在用一个向量。出于我的目的,我通常需要它具有(n)个元素,这些元素只能使用index []运算符修改而访问&。使用std :: vector作为可更改的完全填充数组?
在某个点上,我的算法将决定它需要更多的空间,我需要放大这个向量来说...是它的2倍大小。
有没有一种方法可以使尺寸加倍,并且向量中的所有新空间都默认使用向量元素类型初始化?
基本上,我不希望手动插入元素以在容量加倍后填充容量,而是希望将其全部容量填充并在增加后进行默认初始化。据我所知,reserve只保留空间(并且不初始化它中的元素,所以虽然我可以使用它和循环插入,但我希望有一种更好玩的方式)。
所以,我想,与此构造函数创建一个新的载体的类似的效果:
std::vector<MyType> vec(2*oldvec.size(), MyType());
除了我想保持这种已经在载体之前,规模扩大了一倍,以及元素。
我不能相信我已经忘记了这一点。<倒计时结束时我会接受:p – 2011-12-22 16:35:02