让我们定义一个结构
struct data{
int a, b;
};
和
vector<data>v
现在我的问题是如何在C ++中清除/删除此向量/向量的元素(如果您发布旧版本的C ++编译器,如C ++ 4.3.2 / C ++,那将会更好[非C ++ 11/14])
答案 0 :(得分:2)
要删除所有元素(调用析构函数,声明您不再计划使用该空间......实际的矢量实现决定何时释放该空间,但您不必担心这一点):
v.clear();
参考:http://www.cplusplus.com/reference/vector/vector/clear/
注意:如果要立即释放向量中的内存,请使用 v.resize(0);
要将结构的所有值设置为0,快速且脏的(但不一定是漂亮或可取的)方式是:memset( v.data(), 0, sizeof(data) * v.size() );