这部分主要实现电话簿的前翻和后翻显示功能,主要原理是使用了STL中的迭代器。
用到的数据结构
前面我们用到QMap数据结构存储键-值对,通讯录的name是键,地址contact是值。为了能够浏览前后浏览通信录,这里需要设计一个循环队列,如图所示:
QMap本身有一个迭代器,我们只需要遍历它就可以浏览通信录。
向后翻
找到QMap的类定义,发现iterator是类中的一个类,用::进行访问。contacts是一个QMap对象。
++是运算符重载,作用相当于链表中的向后移动。
先用新的对象i获取现在显示在name框中的元素,然后调用++使得元素向后移动,即显示后一个元素的key和value。
向前翻
向前翻和向后翻是一样的,注意边界条件的判断。
最后的运行界面如图:
——————————————————————–
Reference
[1].http://qt-project.org/doc/qt-4.8/tutorials-addressbook-part3.html