2013-01-09 95 views
19

我有一個向量,我想寫入並將其讀取到文件中,但使用sizeof運算符無法確定向量的邏輯大小。如何發現std :: vector的大小/長度(以字節爲單位)?

那我該怎麼辦?

+1

這就是爲什麼他們有'尺寸'功能。儘管遍歷所有元素,迭代器是比需要知道大小更自然的選擇。 – chris

+0

如何將它寫入文件取決於元素的類型 - 首先您需要知道是否(以及如何)將它們寫入文件。 –

+5

-1沒有閱讀文檔。 –

回答

37

C++ std :: vector有一個方法size(),它返回它的大小。

編輯:現在我得到它,你需要計算一個給定的矢量使用的內存。您不能使用sizeof作爲向量使用動態內存並僅存儲包含其元素的動態數組的指針。所以我最好的建議是將每個元素所需的內存乘以元素的數量。請注意,如果對象存儲指向某些動態分配對象的指針,則再次不起作用 - 您將再次分別計算其大小。

在我知道的C++中,沒有簡單的方法來計算內存中的字節數。

+1

你想測量**這個向量需要的**內存大小嗎? –

+0

嘿我的向量是更復雜的只是它的大小,因爲它是由一個對象組成的,它由一些向量和一些字符串組成,並且它們具有相同的情況,我想要類似memcopy的東西 –

+1

看看我編輯的答案 –

相關問題