Qt 嵌套的QMap和QList赢了';不要让我附加/推回
我正在尝试使用嵌套的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
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恐怕你是对的!我要编辑我的答案了。谢谢!