在使用序列化容器或关联容器时候,采用传统的插入赋值的方法会略显繁琐,本篇文章将介绍怎么简化其用法,提供开发效率。使用{}符可以达到简化操作的效果。
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) 在使用方便的同时,但是在多数据赋值时容易出错。