如何擦除或清除结构数据类型的向量

时间:2015-08-21 16:49:38

标签: c++ vector structure c++03

让我们定义一个结构

struct data{
 int a, b;
};

vector<data>v

现在我的问题是如何在C ++中清除/删除此向量/向量的元素(如果您发布旧版本的C ++编译器,如C ++ 4.3.2 / C ++,那将会更好[非C ++ 11/14])

1 个答案:

答案 0 :(得分:2)

要删除所有元素(调用析构函数,声明您不再计划使用该空间......实际的矢量实现决定何时释放该空间,但您不必担心这一点):

v.clear();

参考:http://www.cplusplus.com/reference/vector/vector/clear/

注意:如果要立即释放向量中的内存,请使用v.resize(0);

要将结构的所有值设置为0,快速且脏的(但不一定是漂亮或可取的)方式是:memset( v.data(), 0, sizeof(data) * v.size() );