繁体   English   中英

取消分配std :: vector成员中的数组

[英]De-allocation of arrays in std::vector members

这是一个关于std :: vector成员结构内部数组范围的问题。

假设我有下一个代码:

struct memberStruct {
...
char array[5];
...
};

std::vector <memberStruct> _workVector;

问题:哪种向量清除方法(clear / erase / pop_back)可确保memberStruct.array取消分配AKA超出范围?

成员array是封闭结构memberStruct一部分,无需分配或取消分配它。 vector将分配/取消分配memberStruct实例,并且还将照顾这些实例中的成员。

array将是memberStruct一部分。 该结构将是5个字节+其他成员+填充。 因此,您的问题的答案是:您提到的每种方法都可以解决问题。

考虑到

...
char array[5];
...

相当于

...
char array_0;
char array_1;
char array_2;
char array_3;
char array_4;
...

事情可能会变得清晰起来。

这与

char *array = new char[5];

其中五个字节存储在结构外部,并且确实需要特殊处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM