c++ - 如何删除或清除结构数据类型的 vector

标签 c++ vector structure c++03

让我们定义一个结构

struct data{
 int a, b;
};

vector<data>v

现在我的问题是如何在 C++ 中清除/删除这个 vector/vector 的元素(如果你发布旧版本的 C++ 编译器的答案,比如 C++ 4.3.2/C++ [不是 C++,这会更好) 11/14] )

最佳答案

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

v.clear();

引用:http://www.cplusplus.com/reference/vector/vector/clear/

注意:如果想立即释放vector中的内存,使用v.resize(0);

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

关于c++ - 如何删除或清除结构数据类型的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32145554/

相关文章:

c++ - operator+ 和 operator= 的运算符重载 C++

vector - 为什么通过替换默认值填充 Vec 比填充具有预设容量的东西快得多?

c - 结构数组的初始化会初始化单个元素的所有成员,为什么?

c - 分解具有特定结构的原始字节字符串会给出错误的数据

c - C语言的机票预订系统

C++ 非静态数据成员的无效使用

c++ - 意外的 undefined reference

c++ - VC++中使用的不同符号

c++11 - 如何在构造 std::vector 时放置元素?

C++ ffmpeg "Starting new cluster"错误