我有一段代码,我会经常用它来填充一个长度在0到5000之间的向量。我知道向量的最大长度不超过5000。为了避免多次初始化向量,我想只初始化一次。
vector<struct> myvector;
myvector.reserve(5000);
然而,要重新填充向量,我必须首先清除向量而不改变其容量。所以通常我会调用myvector.clear();
这是一个O(n)的操作。是否有简单的方法可以提高性能,还是这已经是最好的了?
vector
,并提供这些自定义的resize
和size
功能,以模拟大小的变化。换句话说,你的自定义resize
只会改变新成员的size
而不会销毁任何元素。当然,你应该考虑如何使它与其余的vector
保持一致,以便这个包装对客户端无缝,但这不是什么大问题。 - Alexander Shukaev