从列表向量中删除元素C ++

安娜

我有一个具有std :: list作为成员变量的类。我也有这些类的载体。如果我从向量中删除一个元素,是否将在删除的实例上调用类析构函数?我是否必须在析构函数中使用list :: clear()明确清除列表?

class my_class {
    string class_name;
    list<int> my_list;
public: 
    my_class(); 
    ~my_class(); // destructor
};

vector<my_class> my_vec;

my_class obj1, obj2, obj3;
my_vec.push_back(obj1);
my_vec.push_back(obj2);
my_vec.push_back(obj3);

my_vec.erase(my_vec.begin()+2); //Is this sufficient? 
托菲9

std::vector遵循RAII原则,该原则可确保调用对象的析构函数,并在对象超出范围后将其从内存中删除。

具体针对您的问题:

如果我从向量中删除一个元素,是否将在删除的实例上调用类析构函数?是的

我是否必须在析构函数中使用list :: clear()明确清除列表?

注意: RAII对指针不做任何事情因此,它不会取消引用指针,也不会在已取消引用的对象上调用析构函数,也不会从内存中删除已取消引用的对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从列表向量中删除元素C ++

来自分类Dev

C ++删除向量中的元素

来自分类Dev

在C ++中删除并推回向量的元素

来自分类Dev

从向量C ++中删除多个元素

来自分类Dev

C ++按值从向量中删除元素

来自分类Dev

从列表C中删除元素

来自分类Dev

C ++:访问向量列表中的某些元素

来自分类Dev

C ++:访问向量列表中的某些元素

来自分类Dev

从向量中删除元素

来自分类Dev

如何删除嵌套在向量中的列表中的元素

来自分类Dev

在for循环内调用函数以删除向量(或列表)中的元素

来自分类Dev

如何在C ++中从向量中删除不连续的元素

来自分类Dev

从向量元素中删除字符

来自分类Dev

从向量中删除空元素

来自分类Dev

从向量元素中删除字符

来自分类Dev

从嵌套列表C#中删除元素

来自分类Dev

使用递归C ++从列表中删除元素

来自分类Dev

无法删除 C++ 中的列表元素

来自分类Dev

向量列表中向量元素的比率

来自分类Dev

使用迭代器从C ++中向量的末尾删除元素

来自分类Dev

在向量C ++的向量中删除向量

来自分类Dev

从C#中的列表内的列表中删除元素。

来自分类Dev

删除列表中的元素

来自分类Dev

在向量中添加或删除之后保留指向向量元素的指针(在c ++中)

来自分类Dev

删除并预留列表中不存在于另一个向量中的向量的元素

来自分类Dev

我需要从C中的列表中删除相同的元素

来自分类Dev

从 C++ 中的列表中删除元素的问题

来自分类Dev

如何在C++中删除列表中的某些元素

来自分类Dev

如何从向量中删除重复的元素?