我正在尝试使用嵌套的QList:
QMap<int, QMap<QString, QList<int> > > teamGames;
for (int team1 = 1; team1 <= TOTAL_TEAMS; ++team1) {
QMap<QString,QList<int>> games;
teamGames[team1]=games;
QList<int> home;
QList<int> away;
games["home"] = home;
games["away"] = away;
}
teamGames.value(1).value("home").push_back(1);
当我编译时,我得到: 1&gt;。\ main.cpp(154):错误C2662:'QList :: push_back':无法将'this'指针从'const QList'转换为'QList&amp;'
我确信它很简单,我忽略了,或者可能有一个更简单的解决方案让我望而却步。非常感谢任何帮助。
答案 0 :(得分:8)
正如您所看到的,here QMap::value(const Key & key) const;
会返回const T
,这意味着您无法修改所获得的内容。即使你可以修改你放入地图的值的副本。您需要的是T& QMap::operator[](const Key& key),它返回与键关联的值作为可修改的引用。所以请致电
((teamGames[1])["home"]).push_back(1);