使用默认构造函数创建capacity()
的which 是什么?std::vector
我知道size()
是零。我们可以声明默认构造的向量不调用堆内存分配吗?
这样就可以使用单个分配创建具有任意保留的数组,例如std::vector<int> iv; iv.reserve(2345);
. 假设由于某种原因,我不想size()
在 2345 上启动。
例如,在 Linux 上(g++ 4.4.5,内核 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 供应商?