web-dev-qa-db-ja.com

std :: vectorのサイズ/長さ(バイト単位)を見つけるにはどうすればよいですか?

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

それで私は何をしますか?

22
Vahid Haratian

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

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

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

37