的pop_front()函数是否把元素空间给回收了?

Canon_in_D_Major Canon_in_D_Major 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟不才,只是个小白,很多知识面有缺陷。
今天用Qt写操作系统处理机调度的时候,设了一个的指针指向链表队首元素,之后该元素被pop_front(),按照我的理解,元素被移除,该元素只是跟链表没关系了,但是空间还没有被回收,但是事实是元素被pop_front()后该指针就出错了(运行时崩溃),我注释掉pop_front()那行后,指针能正常使用。
不知道是什么问题,去c-free上想要验证一下,pop_front()有和没有都能正常运行,我也迷糊了,到底是怎么回事?以下是c-free上测试的代码:

#include<list>
#include<iostream>
using namespace std;

class A
{
public:
int data;

A(int x):data(x){}
};

int main()
{
list<A> l;
A a(5);
l.push_back(a);
A* pa = &a;
l.pop_front();
cout<<pa->data<<endl;
return 0;
}
...全文

相关推荐

php数组函数序列之array_pop() – 删除数组中的最后一个元素

array_pop()定义和用法 array_pop() 函数删除数组中的最后一个元素。 语法 array_pop(array)参数 描述 array 必需。规定输入的数组参数。 例子 复制代码 代码如下: &lt;?php $a=array(“Dog”,”Cat”,”Horse”); array_pop($a); print_r($a); ?&gt; 输出: Array ( [0] => Dog [1] => Cat ) 您可能感兴趣的文章:php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。php array_

weixin_38730129

pop_front()函数⽤法

列表是⼀种数据结构,允许按时间顺序在任意位置进⾏插⼊和删除。列表被实现为双向链接列表。列表允许⾮连续的内存分配。与数组,向量和双端队列相⽐,列表在容器中的任何位置执⾏元素的插⼊提取和移动效果更好。在列表中,对元素的直接访问很慢,并且列表与forward_list相似,但是转发列表对象是单个链接列表,并且只能迭代转发。 pop_front()是C ++ STL中的内置函数,在头⽂件中声明。pop_front()⽤于从列表容器的开头弹出(删除)元素。该函数删除列表容器的第⼀个元素,意味着该容器的第⼆个元素成为第

道亦无名

Python列表删除元素del、pop()和remove()的区别小结

主要给大家介绍了关于Python列表删除元素del、pop()和remove()的区别,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

weixin_38626242

python中pop()函数的语法与实例

语法: 列表 list.pop(obj=list[-1]) pop()用于删除并返回列表中的一个元素(默认为最后一个元素) obj:要删除并返回的列表元素 字典dict.pop(key[,default]) pop()用于删除字典中给定的key及对应的value,返回被删除key对应的value,key值必须给出。给定的key值不在字典中时,返回default值。 key:需要删除的key值(不给出会报错) default:若没有字典中key值,返回default值(给定的key值不在字典中时必须设置,否则会报错) 实例: 列表 >>> list1 = [1,2,4,hello,

weixin_38642735

对python中的pop函数和append函数详解

pop()函数 1、描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。 语法 pop()方法语法: list.pop(obj=list[-1]) 2、参数 obj – 可选参数,要移除列表元素的对象。 3、返回值 该方法返回从列表中移除的元素对象。 4、实例 以下实例展示了 pop()函数的使用方法: #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc']; print "A List : ", aList.pop(); print "B List : ", aList.pop(2); 以上实例输出

weixin_38713203
评论 4
收藏 已收藏
分享
返回顶部
Canon_in_D_Major
C++ 语言 65,214 成员 250,514 内容