初学Qt:链表迭代器
来源:互联网 发布:淘宝设计美工招聘 编辑:程序博客网 时间:2024/06/03 16:05
在C++编程过程中使用链表存储数据(以QList为例)
1 class MainWidget : public QWidget 2 { 3 Q_OBJECT 4 5 public: 6 ... 7 QList <Student*>g_ListStore;//建立存储学生信息的链表 8 ... 9 }
但是这条链表只能在MainWidget这个类中直接使用,而为了数据安全,我们又不能建立全局链表。为了解决这一问题我们引入链表迭代器。
所谓链表迭代器实际上是一种数据类型,如
QList<Student*>::iterator List_Now;//存储当前查询、修改学生的位置
“<>”中存储的是链表存储数据的类型,这里的链表(也就是之前的g_ListStore)存储的元素是 Student类型的指针。
声明的变量是一个指针类型的数据,存储的是链表中一个节点的地址。变量自身可以进行加减法运算,返回的结果就是该节点之前或者之后的地址。如链表的遍历可以这样进行
QList <Student*>::iterator List_iterator;for(List_iterator=g_ListStore.begin();List_iterator!=g_ListStore.end();;List_iterator++){}
因此虽然一条链表没有在某个类中声明,但是只要知道链表的头地址、尾地址,就可以访问这条链表,即只要传递以下两个变量即可
QList<Student*>::iterator List_Begin=g_ListStore.begin());
QList<Student*>::iterator List_End=g_ListStore.end());
但是要注意一点:g_ListStore.begin()是链表的头地址,对应链表存储信息的第一个元素,但是g_ListStore.end()虽然是尾地址,但是却并不是我们存储最后的最后一条信息的位置,g_ListStore.end()-1才是。
也就是说当我们期望获得链表存储的最后一个元素时,应该使用“g_ListStore.end()-1”而不是“g_ListStore.end()”。
阅读全文
0 0
- 初学Qt:链表迭代器
- 初学qt
- Qt初学
- qt 初学
- 初学Qt
- 初学QT编程
- Qt初学笔记
- 初学Qt 登陆对话框
- 初学QT心得
- QT初学之一
- 初学QT--中文字符
- QT 初学第一章
- Qt初学经验总结
- 初学Qt(QMainWindow入门)
- 初学Qt:QCheckBox
- 初学Qt开发
- 初学qt的痛苦体会
- 从c++到初学qt
- CSS中奇数选择器与偶数选择器,一句代码怎么实现?
- #include <string.h> 、<cstring>、<string> 的区别
- Java JDK动态代理实现自己的事务管理器
- pthread_cond_wait执行失败
- Linux下后台执行的程序出现stopped的情况
- 初学Qt:链表迭代器
- 删除无序链表中值重复出现的节点
- 网狐荣耀版棋牌游戏输赢控制设置
- 微信清理内置浏览器缓存
- Android Camera对预览进行黑白滤镜处理
- iOS上线提审问题
- MongoDB查询
- 设计模式六大原则
- 关于在cocos studio设置旋转度的bug