22

ベクトルがあり、それをファイルに読み書きしたいのですが、sizeof演算子を使用してベクトルの論理サイズを決定することはできません。

それで、私は何をしましょうか?

4

1 に答える 1

37

c++ std::vector には、size()そのサイズを返すメソッドがあります。

編集:私が今得たように、特定のベクトルが使用するメモリを計算する必要があります。ベクトルは動的メモリを使用し、その要素を含む動的配列のポインターのみを格納するため、そのために sizeof を使用することはできません。したがって、私の最善の提案は、各要素が必要とするメモリに要素の数を掛けることです。オブジェクトが動的に割り当てられたオブジェクトへのポインターを格納している場合、これも機能しないことに注意してください。それらのサイズを個別に計算する必要があります。

私が知っている C++ でバイト単位のベクトル サイズのメモリを計算する簡単な方法はありません。

于 2013-01-09T15:17:14.133 に答える