欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Qt主要的容器类

发布时间:2023/12/10 编程问答 76 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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(); }

 

总结

以上是生活随笔为你收集整理的Qt主要的容器类的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。