我看到很多关于这个话题的问题都在stackoverflow上。然而,在任何一个问题中,我都找不到我的答案。因此,提出这个问题。
我有
vector< vector< int > > temp
我可以为外部向量保留内存:
temp.reserve(20);
现在,我想为每个内部向量保留内存。我可以使用以下方法完成:
temp[i].reserve(500);
然而,如果我使用temp.clear(); 那么temp的容量仍然保持为20。 但是,现在如果我用20个内部向量初始化temp向量,这些内部向量的容量将被重置为0(根据VS2010 Intellisense)。
我的问题:
1. 如何在清空并重新初始化外部向量后保留内部向量的500个容量? 2. 我正在使用OpenCV findContours函数。 这个函数清除外部向量并填充新的一组内部向量。 这个函数会导致内存的释放和重新分配吗?
std::vector::clear
是否保证保留容量? - jamesdlin