个人感觉qt的容器很好用,也很简单。一下简单的总结一下我的使用经验。
QVector,QLinkList,QList,QStringList
最常用的是QList和QStringList.常用的方法,append(),[],count(),at();
QList <int> list;
for(int i=0;i<10;i++)
list<<i; //等价于list.append(i);
访问其中一项可以用list[i],list.at(i);
QStringList strlist;//等价于QList<QString> strlist;同时使用上述一切方法。
容器遍历问题!!!
java风格和STL风格的迭代器:
java风格: 只读迭代器的《QListIterator <T>,QVectorIterator<T>》读写风格的《QMutableListIterator》等;
struct Film //只读迭代器
QList<Film> list;
QListIterator <Film> i(list);
while(i.hasNext())
{
qDebug()<<i.next()
}java风格的本身并不是直接指向项,而是指向第一项之前和最后一项之后。
QList<int> intList;
QMutableIterator<int> i(intlist);
while(i.hasNext())
{
if(i.next()<10)
i.remove();// i.insert(1000);i.setValue(-10);可以修改,删除,增加新的项。
}
STL风格的迭代器
关联模板:
map(key,value),hash(key,value);
使用方法与连续容器相似。请记住map有自动排序的功能。使用有顺序的key值对时。不要用map。可以使用结构体的连续容器。