如果我有一个 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/