3

我正在尝试使用嵌套的 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>.\main.cpp(154) : error C2662: 'QList::push_back' : cannot convert 'this' pointer from 'const QList' to 'QList &'

我敢肯定,我忽略了一些简单的事情,或者也许有一个更简单的解决方案让我望而却步。非常感谢任何帮助。

4

1 回答 1

9

如您所见,此处 QMap::value(const Key & key) const;返回 a const T,这意味着您无法修改所获得的内容。即使您可以修改您放入地图的值的副本。您需要的是T& QMap::operator[](const Key& key)它将与键关联的值作为可修改的引用返回。所以打电话

((teamGames[1])["home"]).push_back(1);
于 2012-02-02T06:35:09.517 回答