std::vector
中,capacity()
是什么?我知道 size()
为零。我们能否说明默认构造的向量不调用堆内存分配?这样就可以使用单个分配创建具有任意保留的数组,例如
std::vector<int> iv; iv.reserve(2345);
。假设出于某种原因,我不想将 size()
设为 2345。例如,在 Linux (g++ 4.4.5, kernel 2.6.32 amd64) 上。
#include <iostream>
#include <vector>
int main()
{
using namespace std;
cout << vector<int>().capacity() << "," << vector<int>(10).capacity() << endl;
return 0;
}
输出0,10
。这是一个规则,还是与STL供应商有关?
swap
时,所有迭代器和引用都保持有效(除了end()
)。这意味着内联缓冲不可行。 - Notinlist