Qt主要的容器类
1、描述
容器和迭代器类提供修改、删除、插入、保存数据和遍历等功能,Qt包含的容器类比STL更加简单和安全。
2、常用的容器
- QList<T>:使用数据间的索引可以访问数据,储存特定类型。
- QLinkedList<T>:使用迭代器访问数据,而非基于整数的索引,对于已有的大量数据中插入数据比QList快,链表。
- QVector<T>:相临近内存的位置存储特定类型的数据数组。
- QStack<T>:堆栈结构先进后出的QVector子类容器,主要接口push()、pop()、top()。
- QQueue<T>:队列结构先进先出的QList子类容器,主要接口enqueue() dequeue() head()。
- QSet<T>:快速查找单一值的数据模式,保存数据无顺序,可以快速查找。
- QMap<Key,T>:与数据对应的单一映射方式的关键字,字典功能容器,二叉树搜索字典。
- QMultiMap<Key,T>:QMap子类,提供电仪关键字模式形态,基于多映射。
- QHash<Key,T>:和QMap类似,但是查询速度比QMap更快,可以随机存储数据,散列表字典。
- QMultiHash<Key,T>:提供多个关键字模型。
3、示例
3.1 QList
QList<QString> liststr; //添加 liststr<<"one"<<"two"<<“three”; liststr.append("four"); //查找 if(liststr[1] == "two"){qDebug()<<liststr[1]; } if(liststr.at(1) == "two"){qDebug()<<liststr.at(1); }3.2 QHash<Key,T>
QHash<QString, int> hash; hash["one"] = 1; hash["two"] = 2; hash.insert("four",4); int nmb = hash.value("four");3.3 QMultiHash<Key,T>
QMultiHash<QString, int> mhash; mhash.insert("cost",100); mhash.insert("cost",200); mhash.insert("cost",300);QList<int> val = mhash.value("cost"); for(int i = 0; i < mhash.size(); i++){qDebug()<<val.at(i); }3.4 QStack<T>
QStack<int> stack; stack.push(100); stack.push(200); stack.push(300);while(!stack.isEmpty()){qDebug()<<stack.pop(); }3.5 QQueue<T>
QQueue<int> queue; queue.enqueue(100); queue.enqueue(200); queue.enqueue(300);while(!queue.isEmpty()){qDebug()<<queue.dequeue(); }
总结
- 上一篇: python 关闭窗口事件_关于pyth
- 下一篇: 网络蚂蚁(netants) v1.25