2
私は構造体のstd::vector
であるデータ構造を持っています。各構造体にはstd::vector
も含まれています。私は、構造全体を表現するのに必要なメモリの上限を事前に計算したいと思います。これを行うために、テストでは、ファイナライズされた構造のメモリ要件を計算し、それを私の見積もりと比較したいと思います。ベクトルを含む構造体のベクトルのバイト数(バイト)C++
struct SequenceInfo {
unsigned long num1;
unsigned long num2;
unsigned long vectorLength;
std::vector<unsigned long> values;
};
// A vector of sequence data to represent all data
typedef std::vector<SequenceInfo> SequenceInfoVec;
void foo(SequenceInfoVec& vec)
{
getVec(vec);
std::size_t actualSize = sizeof(SequenceInfoVec);
for (SequenceInfoVec::iterator it1 = vec.begin(); it1 != vec.end(); ++it1)
{
actualSize += sizeof(SequenceInfo) +
sizeof((*it1).values[0]) * (*it1).values.size();
}
cout << "memory size of vec is: " << actualSize << endl;
}
これは、データ構造のメモリ要件を計算するための正しい方法です、(のための小さなOSのオーバーヘッドを無視:私は、次のコードを使用してこれを行うには
メモリ割り当て)?