专栏首页跟Qt君学编程Qt容器类的简化操作

Qt容器类的简化操作

在使用序列化容器或关联容器时候,采用传统的插入赋值的方法会略显繁琐,本篇文章将介绍怎么简化其用法,提供开发效率。使用{}符可以达到简化操作的效果。

1. 序列化容器一般做法

(1) QList:

QStringList strList;
strList.append("1");
strList.append("2");
strList.append("3");

(2) 又或者这样:

strList<<"1"<<"2"<<"3";

(3) 简化做法:

QStringList strList({"1", "2", "3"});

2. 关联容器一般做法

(1) QMap容器一般做法:

QMap<QString, QString> map;
map["1"] = "1";
map["2"] = "2";
map["3"] = "3";

(2) 简化做法:

QMap<QString, QString> map({{"1", "1"}, {"2", "2"}, {"3", "3"}});

(3) 带嵌套的复杂做法:

QMap<QString, QMap<QString, QString>> map = {
    {"1", {{"1", "1"}} },
    {"2", {{"2", "2"}} },
    {"3", {{"3", "3"}} }
};

QList<QMap<QString, QString>> list = {
  {{"1", "1"}},
  {{"2", "2"}},
  {{"3", "3"}}
};

3. 总结了一下用法

(1) QList是单对"{}"组成,QMap是双对"{}"组成,按照这一个规则就可以初始化或赋值的简化了;

(2) 除了QList序列化容器外,它还支持QLinkedList,QVector;

(3) 除了QMap关联容器外,它还支持QMultiMap,QHash,QMultiHash。

4. 需要注意事项

(1) 该用法需要支持C++11语法;

(2) 在使用方便的同时,但是在多数据赋值时容易出错。

本文分享自微信公众号 - Qt君(qtjuna),作者:Prosa

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 发布 | 汉字转拼音工具

      欢迎大家一起协作完善。 https://github.com/aeagean/Hanzi2Pinyin

    Qt君
  • 为QtCreator添加一键打包工具

    填入下列参数到对应栏目下。由于打包工具会在执行文件目录下生成打包依赖文件,建议在项目文件(.pro)中使用DESTDIR指定执行文件的生成路径。

    Qt君
  • 设置打印输出不缓冲

    Qt君
  • 那个曾刷爆朋友圈的无人机Lily宣告破产,PPT创业失效了?

    说到无人机人们首先会想到大疆,说到无人机跳票,人们会想到Lily。 ? Lily的意思是百合花,也是一款备受关注的无人机。在刷爆朋友圈的视频中,它可以直接抛飞、...

    罗超频道
  • 米斯特白帽培训讲义 挖掘篇

    信息侦探技术用于得到网站信息,包括网站服务器、WHOIS 信息,网站用户信息,网站程序信息以及其他。这些信息服务于我们的渗透测试。

    ApacheCN_飞龙
  • 集成性成部署云计算首要考虑的问题

    Forrester最近的调查显示集成已经成为CIO在采用云计算时首要考虑的问题之一。虽然点对点的解决方案可以解决即时的问题,但是问题不会局限于单独的Saa...

    静一
  • 通讯协议序列化解读(二) protostuff详解教程

    生活创客
  • weex-08-单击事件

    酷走天涯
  • Gradle sync failed: Cause: com.intellij.util.containers.HashMap cannot be cast to com.intellij.util.

    使用idea导入gradle项目,报这个错误: Gradle sync failed: Cause: com.intellij.util.containers...

    IT云清
  • duilib直接加载HBITMAP作为背景图

    const TImageInfo* AddImage(LPCTSTR bitmap, HBITMAP hBitmap, int iWidth, int iHei...

    大菊观

扫码关注云+社区

领取腾讯云代金券