何である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ベンダーに依存していますか?