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):エラーC2662:'QList :: push_back':'this'ポインタを'const QList'から'QList&'に変換できません

私が見落としているのは単純なことだと確信しています。あるいは、私を避けているもっと単純な解決策があるかもしれません。どんな助けでも大歓迎です。

4

1 に答える 1

9

ご覧のとおり、はを返します これは、取得したものを変更できないことを意味します。たとえあなたがマップに入れた値のコピーを変更することができたとしても。必要なのはT&QMap :: operator [](const Key&key)で、これはキーに関連付けられた値を変更可能な参照として返します。だから電話QMap::value(const Key & key) const;const T

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