c++ - 澄清列表和删除元素

标签 c++ list stl pointers object

如果我有一个 list<object*>>* queue并想弹出列表中的第一个对象并将其交给程序的另一部分,使用是否正确(粗略代码):

object* objPtr = queue->first();
queue->pop_first();
return objPtr;  // is this a pointer to a valid memory address now?

?

根据 http://www.cplusplus.com/reference/stl/list/pop_front/ 上的文档它调用了删除元素的析构函数,但我很困惑它是指链表的节点对象,还是实际存储的“用户”对象。

编辑:我可能是 front而不是 first ,我的错。

最佳答案

是的,它是一个有效的指针。 List不会释放你分配的内存。列表将破坏其内部而不是用户对象。

关于c++ - 澄清列表和删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1565724/

相关文章:

c++ - 为什么调用了不合适的重载函数?

java - Java 中的二维列表

c++ - 指向基类 : how to call unique derived class method 的指针数组

c++ - 如何把一个系统环境变量作为一个宏定义到一个C头文件中?

c++ std::copy 类型转换为派生类可能吗?

list - haskell 列表中的唯一元素

c++ - 整数到类的映射(模板)

c++ - hash_map 是 STL 的一部分吗?

c++ - 为什么不能简单初始化(带大括号)2D std::array?

c++ - "no match for ' operator<< ' in ' std::operator<< '"在Linux下编译时出错,VS不会出现这个错误