访问QMap的QMap <qstring,qpair <int,=“”int =“”>&gt;

时间:2018-05-03 12:25:26

标签: c++ qt

是否可以编写和初始化

QMap<QString, QPair<int, int>>
在Qt 5.10中

例如,我想这样做

QMap<QString, QPair<int, int>> ee{"MAC", 0,0,};  // string, section 0, line 0

当我提供Mac时,我需要检索货币对0,0

 eepromDictionary = QMap<QString, QPair<int, int>>{ {
                                                      "MAC", {0,0},
                                                      "IP", {0,0},
                                                      "Mask", {0,0},
                                                      "ID", {0,0},
                                                      "Gateway", {0,0},
                                                      "Date", {0,0}
                                                      }

                                                      };

2 个答案:

答案 0 :(得分:1)

请注意,QMap(initializer_list<pair<Key, T>>会将pair<Key, T>作为其元素。将每个元素包装在其自己的大括号中应该足够了。例如:

QMap<QString, QPair<int, int>> ee = {{"MAC", {0, 0}}}

如果您要初始化ee的第二个元素,可以像initializer_list那样扩展{{"MAC", {0, 0}}, {"DONALDS", {0, 0}}}:{{1}}

答案 1 :(得分:0)

通过这种方式初始化:ee{"MAC", {0,0} }您只是初始化一个列表元素,您缺少List的括号,这样做可以解决问题:

QMap<QString, QPair<int, int>> ee{ {"MAC", {0,0} } }