[英]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.