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

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

0

5个回答

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

1

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

0

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

0

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

0

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

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Qt学习(4)QList类
下面举一个例子: #include <QDebug> int main(int argc,char *argv[]) { QList<QString> list; { QString str("This is a test string"); list<<str; } qDebug()<<list[0]&lt...
KS04-06 常用Qt类-QList
1,本套课程由18年跨平台软件研发经验的老鸟编写。通过系统性组织,带您一步步学习Qt界面开发的各种实用技术;rn2,通过作业练习,可以加深理解。课程附有源代码,源代码版权归作者:女儿叫老白。源代码仅供学员个人学习,请勿传播或用作商业用途,否则后果自担。rn3,加入学习交流群,可以跟其他学员交流工作学习中碰到的问题,说不定有很好的解答哦。rn4,课程发布后仍会有新增章节更新,敬请关注。
Qt容器类(QList,QMap)遍历器的使用
Qt容器类比较典型的就是QList,QMap,遍历器的使用分为STL风格和Java风格。
自学QT之QT编程中QList类的removeAt方法记录
#include #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QList mylist; for(int i=0;i<10;i++) { mylist.append(i+88); } mylist.re
Qt中foreach及QList的使用
QList是一个最常用的容器类,用它定义一个对象通常是  QList list; 其中int代表给定的类型,也就是说现在定义了一个有符号整形的容器,让后给里面装值 list 现在就可以使用foreach(int i,list)这样就可以遍历整个容器了 QList int>list; list 2416; foreach(int str,list) qDe
qt中Qlist指针访问Qlist中的内容
刚学qt不久,c++基础也有点差,今天用到 Qlist *list;n我要怎么用访问list中的内容呢,如果不是指针可以用 list[i]来访问,指针的话我使用c的方法貌似不可以,求大佬解决
Qt中 对QList的排序
Qt中的qSort可以对Qlist 进行排序 1、 数组 QList list; list qSort(list.begin(), list.end()); //排序结果:[10,12,13,16] 2、多维的数组 头文件: class PosSortResult { public: int agvpos; int posid; } //多条任务
qt QList析构大比拼
//mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include &amp;lt;QMainWindow&amp;gt; #include &amp;lt;QTime&amp;gt; typedef struct{ QString text; QString id; QString value; }TestData; name...
QT之QList的错误
   记录一下这次犯的错误~    好气哦,看了一天时间bug。男朋友一下子帮我解决,有个程序员男朋友还挺好~    相关问题描述:                    resourse_label_str_list是个QStringList类型的,存放的是我解析出来的资源重组之后的数据。     具体看:    sysItemList.append(&quot;天伺馈J#综合测控基带D,S频段标准TT&amp;...
链表遍历器类
链表遍历器类rntemplaternclass ChainIterator rnpublic:rnT* Initialize(const Chain& c)rnrnlocation = c.first;rnif (location) return &location->data;rnreturn 0;rnrnT* Next()rnif (!location) return 0;rnlocation = location->link;rnif (location) return &location->data; 这里返回加&符号 是返回什么?rnreturn 0;rnprivate:rnChainNode *location;rn ;
Qt之QList详解
1、QList是一种表示链表的模板类。 2、QList是Qt的一种泛型容器类。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。 3、QList、QLinkedList和QVector提供的操作极其相似: * 对大多数操作来说,我们用QList就可以了。其API是基于索引(index)的,因此用起来比QLinkedList更方便(QLinkedList...
QList 类用法
1. QLinkedList 是提供列表的一个模板类。          2. QList 是QT的一个通用容器类,它存储列表的值,并基于索引访问(index-based),同时,它插入和删除元素比较快(constant time)。          3. QList, QLinkedList, and QVector 提供类似的功能,如下概况:               ①
Qt学习笔记1 对容器类QList QLinkedList QVector的遍历
对容器类QList QLinkedList QVector的遍历 目录 对容器类QList QLinkedList QVector的遍历 目录 0.QList QLinkedList QVector容器的时间复杂度比较 1.Java风格的迭代器 2.STL风格的迭代器 0.QList QLinkedList QVector容器的时间复杂度比较 1.Jav...
QT(1)Java类型迭代器实现QList只读遍历
java风格迭代器: 例如: QList&amp;lt;T&amp;gt;容器: 只读迭代器类:QListIterator&amp;lt;T&amp;gt; 读写迭代器:QMutableListIterator&amp;lt;T&amp;gt; QLinkedList&amp;lt;T&amp;gt;容器: 只读迭代器:QLinkedList&amp;lt;T&amp;gt; 读写迭代器:QMutableLinkedList&amp;lt;T&amp;gt; QVector&amp;lt;T...
Qt 信号与槽传递QList动态数组
根据我的实验,测试程序见下 - QString的QList动态数组能够通过signal-slot机制进行传递 - 自定义结构的QList动态数组也能通过signal-slot机制进行传递 //&quot;mainwindow.h&quot; #ifndef MAINWINDOW_H #define MAINWINDOW_H #include &amp;lt;QMainWindow&amp;gt; #include&amp;lt;QD...
Qt学习——QList + 结构体 注意事项
注意 Qlist 使用结构体时,不能使用foreach进行遍历,会报错“==”操作符重载有问题。但是可以使用for进行遍历
python3 内循环中遍历map,遍历一遍后再次进入内循环,map为空
今天在使用python map的过程中,发现了一个奇怪问题,map遍历完成后,再次访问map,发现map为空了,特记录下来,以备日后查看。如下代码,期望的结果是每次从外循环进入内循环,map都从头开始进行遍历,但事实却不是这样,下面为代码: outData = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]] outDataMap = map...
类后面的变量声明是怎么回事??
如题,rn类后面的变量声明是怎么回事??rn比如rnstruct HufTreeNodernrn int weight;rn HufTreeNode *leftchild;rn HufTreeNode *rightchild;rn[color=#FF0000]nodes[MAXCHAR], *nodes_heap[MAXCHAR], nodebuf[MAXCHAR-1];[/color]rnrn请问这些变量是定义的全局变量么??rn和直接定义的全局变量有什么差别?rn有那本书有提到么:
给定链表的尾指针,要求遍历一遍后就从头到尾输出链表的内容?
看样子也只能用递归做了,用递归函数所运用的堆栈来弥补不能使用堆栈的缺陷。rnrn大家看看怎么做。rn head rn ----- ---- ----rn | A | | B| | C|rn ----- ---- ---- —rn | |《----| |《----| | 〈-----|P|rn ----- ---- ---- —rnrn要求输出ABC
window.parent.document.body为空是怎么回事
window.parent.document.body为空是怎么回事,
Altium Designer覆铜后变为绿色是怎么回事?
最近在做一个小板子,但是覆完铜后也把网络设置为GND,但是板子变绿色了,之前没有碰到过,也查过想过资料说是规则设置有问题,找了半天也没有发现规则相关问题,最后终于找到了解决方法,我把步骤写在下面, 出现的问题如图所示,不知道你们有没有碰到这样的问题, 解决方法:: 1.在PCB 界面上右键选择优先选项(property)。 2.在打开的对话框左侧选择PCB editor---ge...
SQL ID是空怎么回事
数据库很慢,检查有很多BLOCKING_SESSION。rn但是SQL ID都是空的,找不到对应的SQL,这是怎么回事啊。
为什么类是空的?
有下面这个类:rn[code=C#]rnpublic class Goodrnrn public int ID get; set; rn public string Name get; set; rn public string Introduce get; set; rn public string Brand get; set; rn public string Unit get; set; rn public float Weight get; set; rn public string Url get; set; rn public double MarketPrice get; set; rn public double MemberPrice get; set; rn public bool Isrefinement get; set; rn public bool IsHot get; set; rn public bool IsDiscount get; set; rn public DateTime AddTime get; set; rnrn[/code]rnrn实例化一个Good类:g.rn然后在打开页面的时候通过:rn[code=C#]rn if (!IsPostBack)rn rn g = good.GetGoodsInfoByID(int.Parse(Request.QueryString["GoodsID"].ToString()));rn this.DataBind();rn rn[/code]rn得到数据,然后通过如<%#g.Name%>绑定到页面上,已经成功了。rnrn但是在一个按钮下面访问这个g的话,它是空的,怎么回事儿呢?rn
CSocket类是怎么回事?
[size=14px] 今天用CSocket类在MFC中编写客户端和服务器程序,使用的是UDP通信,问题如下:rn客户端采用SentTo()向服务器发送数据,如果服务器的socket没有开启,竟然触发了客户端的OnReceive()函数,但是接收的数据却不是发送的数据,如果服务器的socket开启就不会出现这种情况,我想问:rn(1)这是正常情况,还是我的程序有问题?(程序应该没问题的)rn(2)这种情况的原因是啥?能否避免这种情况?rn求大神指导……[size=13px][/size][/size]
run-time类是怎么回事?
请详细地说说
类构造器是怎么回事?
在http://www.aspcool.com看到两篇文章:利用.net框架开发应用系统、开发.net平台应用系统框架,但是有些不明白其中的builder、类构造器是怎么回事,是需要特殊工具还是c#中的?
sqlHelper类是怎么回事??
在ASP.NET中sqlHelper类是怎么回事??rn它是如何使用的??rn请那位高手赐教!!
QT中文件内容遍历
QTextStream in(&file); rnQString x;rn while (!in.atEnd())rn rn x += in.readLine();rn rnrn QString y = “abc”;rn if(x.indexOf(y)>=0)rn rn QMessageBox *dig=new QMessageBox();rn dig->setText("对不起,"+strname+"用户名已被注册");rn dig->show();rn rnrn是遍历出问题了吗 明明文件里面有abc 对话框老是蹦不出来
QList
有个函数:rnQList QXmppDataForm::fields() constrnrn return m_fields;rnrn我想把QList的内容输出到UI界面,UI界面上有个显示控件,叫 listWidget,类型为QlistWidget。该怎样显示出来呢?rnrn我只知道:ui->listWidget后面该咋写呢?
逆置/反转单链表,要求只能遍历一遍链表
第一种方法,非递归 list_node* reverse(list_node* list) { assert(list); if (NULL == list->next) { return list; } list_node* new_head = NULL; //用作返回值的头结点 list_node* cur = list; //当前结点 list_node* ne
怎样反向遍历QList(C++风格)
RTrnrn如果是用STL,我会这样做:rn[code=C/C++]#include rn#include rnusing namespace std;rnrnint main()rnrn list mylist;rn for(int i=0; i<10; i++)rn mylist.push_back(i);rn list::reverse_iterator riter = mylist.rbegin();rn for(; riter!=mylist.rend(); ++riter)rn cout << *riter << endl;rn return 0;rn[/code]rnrn但QT的容器类好像没有反向迭代器啊,那应该怎么办呢?
QT中C++暴露QList<qint32>/QList<quint32>类型对象在qml中使用异常
import QtQuick 2.6 // C++暴露的QList&lt;qint32&gt;类型,QList&lt;quint32&gt;类型qml无法识别 // 问题:直接绑定到listview不生效 // 方法1:QStringList可直接绑定 // 方法2:Qt.binding(function(){ return listModel }) property var listMode...
candy-leetcode :只需要遍历一遍的解法
注;绝大部分解法都是O(n)的复杂度,但是可能需要扫描多遍。  本方法只需要从左到右扫描一遍,因此在数据量大的时候应该是会有优势的。但复杂度也是O(n) 版本1:寻找局部最高点和最低点,局部最低点取值为1,并向两边逐1扩展;局部最高点取左右极限(虽然不是极限的概念)的最大值。 版本2: 基本思路:从上面的方法可以发现:那么从左往右扫描时,可以确定递增序列中每个位置该分配多少
遍历一遍求最大子串和
最大子串和(再议) ■.实现方法: 采用一般的循环结构,对整个串只需要一遍扫描即可求出最大子串和。 ■.实现思想:     ●.观察整个整数串的最大子串分布,会发现               ●.最大串不可能是从负数开始;               ●.也不会包含顺序累加和为负值的子串;               ●.只有顺序累加和为正的子串才有可能是最大子串的一部分。
遍历链表
问题: 问题链接:点击打开链接 题目描述: 建立一个升序链表并遍历输出。 输入: 输入的每个案例中第一行包括1个整数:n(1 输出: 可能有多组测试数据,对于每组数据, 将n个整数建立升序链表,之后遍历链表并输出。 样例输入: 4 3 5 7 9 样例输出: 3 5 7 9 来源:2000年华中科技大学计算机研究
链表遍历**
对于一个链表遍历的遍历,我们判断是否到了最后一个位置一般是判断结构体中的next是否为NULL,其实也可以用**指针进行操作。#include <cstdio> #include <cstdlib> #include <cstring> #include <iostream> using namespace std; typedef struct Node{ int mx; stru
遍历链表确定链表中的最大值
Position Find( List L, ElementType X ){ for(int i=0;i&amp;lt;L-&amp;gt;Last;i++) if(L-&amp;gt;Data[i]==X) return i; return ERROR; }  
数组变为链表
[size=x-large]数组实现链表[/size] [size=large]1 建立一个节点类LinkNode[/size] [code=&quot;java&quot;]package com0415数组变为链表; //定义一个链表节点类 public class LinkNode { //节点中存的数据 public Object data; //指向下一个节点 public Obj...
清除QList中的数据
先看一下代码 QWidget *ww=new QWidget; qDebug()<<"ww--"<<ww; QListlist; list.append(ww); list.append(new QWidget); list.append(new QWidget); list.append(new QWidget); foreach
Qlist 的问题(二维链表 存储自定义类型)
[code=C/C++]rn//自定义类型rnstruct CarLaneLogrnrn int LaneNo; rn int Datatype; rn int colorflag; rn QString Loginfo; rn quint8 checkCode; rnpublic:rn void Init()rn rn LaneNo=0;rn Datatype=0;rn colorflag=0;rn Loginfo="";rn checkCode=0;rn rn CarLaneLog &operator=(const CarLaneLog &temp)rn rn if(this==&temp)rn return *this;rn LaneNo=temp.LaneNo;rn Datatype=temp.Datatype;rn colorflag=temp.colorflag;rn Loginfo=temp.Loginfo;rn checkCode=temp.checkCode;rn return *this;rn rn;rn //保存15条日志信息rn QList >LaneLogList;rn//其中一段操作rn int i;rn for(i=0;i!=LaneLogList.count();++i)rn rn if(LaneLogList.at(i).at(0).LaneNo==LaneNo)rn rn if(LaneLogList.at(i).count()>=15)rn rn LaneLogList.at(i).pop_front();rn rn LaneLogList.at(i).append(Analysis.LaneLoginfo);rn rn rn if(i==LaneLogList.count())rn rn QList temp;rn temp.append(Analysis.LaneLoginfo);rn LaneLogList.push_back(temp);rn rn/*--------------------------------注释------------------------*/rn//其中Analysis是一个类,其中他有一个成员是CarLaneLog 类型变量LaneLoginforn//LaneNo是一个整型变量,已经赋予初值2rn[/code]rnerror: passing 'const QList' as 'this' argument of 'void QList::pop_front() [with T = CarLaneLog]' discards qualifiersrnrnpassing 'const QList' as 'this' argument of 'void QList::append(const T&) [with T = CarLaneLog]' discards qualifiersrnrn这是错误输出。小弟就是想做一个二维链表,里面可以存储我自定义的结构体。并且这个二维链表每个节点的链表长度是15.rn可以实现增删改查的操作。rn为毛会有这种错误啊,大牛们,求解啊,
相关热词 c#串口测试应用程序 c# 匹配 正则表达式 c#防止窗体重绘 c#读写txt文件 c#挖地雷源代码 c#弹框选项 c# 移除 队列 c# 密码写入配置文件 c# 获取可用内存大小 c# 嵌入excel编辑