这里容器类与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;
}

运行结果:

1
2
3
4
5
"beijing" "111"
"jinan" "0531"
"shanghai" "021" 



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐