std :: vectorのインスタンスが占めるバイト数を理解しようとしています。次のコード:C++でベクトルインスタンスが占有する領域を理解する
vector <int>uno;
uno.push_back(1);
uno.push_back(1);
cout <<"1: "<< sizeof(uno)<<" bytes"<<endl;
cout << endl;
vector <bool>unos;
unos.push_back(true);
cout <<"2: "<< sizeof(unos)<<" bytes"<<endl;
cout << endl;
が私にこの出力を与える:
1:12バイト
2:20バイト
vector<bool>
のサイズがよりバイト以上を持っている理由は、誰かが私に説明できますが?vector<int>
?そして、ベクトルインスタンスのバイト単位のサイズを測定する正しい方法は何ですか...ベクトルの各メンバのサイズを追加することによって? C++で
+1:ベクトルは特殊化されているため大きいです。 –
Puppy
ベクターの場合、ヒープ上の追加のブックキープの必要はありません。 –
@kot:あなたが何を意味するか分かりません。すべてのヒープ割り当てには、インプリメンテーションに固有の*目に見えないブックキーピングデータがあります。 – fredoverflow