2 xuwq2015 xuwq2015 于 2015.06.08 15:42 提问

qt中的QList类,在遍历一遍后链表变为空是怎么回事

我在qt中使用QList存储了一个自定义的数据结构,在对这个数据结构的内容取值后整个链表变为空的链表,不知道这是怎么回事

5个回答

sxjiangdongqin
sxjiangdongqin   2015.06.09 22:06

你要输出链表的话,可以用at(),而不是takeAt(),takeAt()是删除链表中的元素
3是长度
takeAt(0),删掉了第一个元素,那么接下来剩下两个元素,BB,cc,
然后takeAt(1),要删掉第二个元素,现在list剩下了BB,cc,第二个自然是cc
然后list只剩下了BB,你要takeAt(2),删掉第三个元素,list中根本没有第三个,自然会报错误
index out of range

Tiger_Zhao
Tiger_Zhao   Rxr 2015.06.08 16:51

你的“取值”方法有问题,变更了QList内容。

han_gaara
han_gaara   2015.06.08 17:15

没删?或者给头重新赋值了?

datou431
datou431   Rxr 2015.06.09 15:57

是不是在遍历过程中被再一次实例化了?

sxjiangdongqin
sxjiangdongqin   2015.06.09 22:06

你要输出链表的话,可以用at(),而不是takeAt(),takeAt()是删除链表中的元素
3是长度
takeAt(0),删掉了第一个元素,那么接下来剩下两个元素,BB,cc,
然后takeAt(1),要删掉第二个元素,现在list剩下了BB,cc,第二个自然是cc
然后list只剩下了BB,你要takeAt(2),删掉第三个元素,list中根本没有第三个,自然会报错误
index out of range

Csdn user default icon
上传中...
上传图片
插入图片