什么是capacity()的std::vector这是使用默认constuctor产生的?我知道那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供应商相关?