[英]C++ Size of Struct with Vectors as Members
我有一個結構,其中有一些向量作為成員:
struct my_struct
{
std::vector<int> x;
// more members here
};
和my_struct的一個實例:
my_struct A;
結構中的向量在程序執行期間顯然會發生變化,例如
A.x.resize(...);
或Axpush_back(...);
我的問題是,有沒有辦法在程序中的某個時刻知道A的內存大小? 由於向量成員,sizeof(A)不返回正確答案。
向量的大小不會影響結構的大小,因為向量會分配內存來保存堆上的對象,至少使用默認的分配器。 此外,在將結構內容寫入文件時,將永遠不會寫入向量所包含的對象,只會寫入向量的數據成員的值。 對象在某種指針中由向量引用,因此寫入文件的是指針(地址)的值,而不是它指向的數據。 要將向量及其對象寫入文件,您需要自己實現。 也許提升序列化可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.