的pop_front()函数是否把元素空间给回收了?
今天用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 必需。规定输入的数组参数。 例子 复制代码 代码如下: <?php $a=array(“Dog”,”Cat”,”Horse”); array_pop($a); print_r($a); ?> 输出: Array ( [0] => Dog [1] => Cat ) 您可能感兴趣的文章:php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。php array_
pop_front()函数⽤法
列表是⼀种数据结构,允许按时间顺序在任意位置进⾏插⼊和删除。列表被实现为双向链接列表。列表允许⾮连续的内存分配。与数组,向量和双端队列相⽐,列表在容器中的任何位置执⾏元素的插⼊提取和移动效果更好。在列表中,对元素的直接访问很慢,并且列表与forward_list相似,但是转发列表对象是单个链接列表,并且只能迭代转发。 pop_front()是C ++ STL中的内置函数,在头⽂件中声明。pop_front()⽤于从列表容器的开头弹出(删除)元素。该函数删除列表容器的第⼀个元素,意味着该容器的第⼆个元素成为第
Python列表删除元素del、pop()和remove()的区别小结
主要给大家介绍了关于Python列表删除元素del、pop()和remove()的区别,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
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,
对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); 以上实例输出


