Qt 嵌套的QMap和QList赢了';不要让我附加/推回

Qt 嵌套的QMap和QList赢了';不要让我附加/推回,qt,qlist,qmap,Qt,Qlist,Qmap,我正在尝试使用嵌套的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; QL

我正在尝试使用嵌套的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);
QMap团队游戏;
for(int team1=1;team1.\main.cpp(154):错误C2662:'QList::push_back':无法将'this'指针从'const QList'转换为'QList&'

我确信这是我忽略了的简单问题,或者可能有一个更简单的解决方案让我无法理解。非常感谢您的帮助。

如您所见
QMap::value(const Key&Key)const;
返回一个
const T
,这意味着您不能修改您得到的内容。即使可以,您也会修改您输入到映射中的值的副本。您需要的是它返回与键关联的值作为可修改的引用。因此,请调用

((teamGames[1])["home"]).push_back(1);

嗯,也许我回答得太快了,但正如你在回答中所说,
QMap::value()
返回一个常量复制的东西,所以即使是第一次打电话,你也必须使用
操作符[]
这样:
teamGames[1][“home”]。推回(1);
。还是我错了?@totem恐怕你是对的!我要编辑我的答案了。谢谢!