Qt学习——容器类QList和QMap

来源:互联网 发布:java吧百度贴吧 编辑:程序博客网 时间:2024/05/21 09:48
这里容器类与C++和Java的容器类相差不多,主要看看是什么用法。这里只贴代码,就不做解析了。

1.QList<T>用法:
需要注意的是T只包括一些基本数值类型(比如int和double等)和Qt的一些数据类型(比如QString,QDate和QTime等)。Qt的QObject及其他的子类(比如QWidget和QDialog等)是不能够存储在容器类中的。 可替代方案是存储QObject及其子类的指针(如QList<QToolBar*> list;)。
QList<int> list; list<<1<<2<<3<<4<<5;QList<int>::iterator i;for(i=list.begin();i!=list.end();++i) {     qDebug()<<(*i);     *i=(*i)+10; }   

2.QMap<key,T>的用法: 
这个比较好用,可以根据key查询value。在平常编程中我常用到这个和List。
QMap<QString,QString> map;  map.insert("beijing","111");  map.insert("shanghai","021");  map.insert("jinan","0531");  QMap<QString,QString>::iterator i;  for(i=map.begin();i!=map.end();++i)  {      qDebug()<<i.key()<<" "<<i.value();  }  i=map.find("beijing");  if(i!=map.end()) i.value()="010";

3.还有其他的容器类:
比如QHash,QQueue,QLinkedList,QVector,QStack等。以后用到再细看吧!
我写的测试代码如下:
#include <QDebug>int main(){    QList<int> list;    list<<1<<2<<3<<4<<5;    QList<int>::iterator i;    for(i=list.begin();i!=list.end();++i)    {qDebug()<<(*i);*i=(*i)+10;    }    QMap<QString,QString> map;    map.insert("beijing","111");    map.insert("shanghai","021");    map.insert("jinan","0531");    QMap<QString,QString>::iterator ii;    for(ii=map.begin();ii!=map.end();++ii)    {        qDebug()<<ii.key()<<" "<<ii.value();    }    ii=map.find("beijing");    if(ii!=map.end())        ii.value()="010";    return 0;}

运行结果:
12345"beijing" "111""jinan" "0531""shanghai" "021" 



原创粉丝点击