2

intとItemクラスのオブジェクトをペアにするunordered_map(C ++)があります。順序付けされていないマップをファイルの先頭で次のように初期化します。

#include <iostream>
#include <unordered_map>
using namespace std;
typedef std::unordered_map<int, Item> MyList;

それ以降、次のようにMyListを使用しようとするたびに次のようになります。

Item item1;
MyList[12] = item1;

ターミナルでコンパイルすると、「エラー:'['トークンの前にunqualified-idが必要です」というエラーが表示されます。何が間違っている可能性があるのか​​?以下は、私がそれをどのように使用し、同じまたは同様のエラーを受け取るかについての他の例です。

void itemManager::removeItem(int x)  {
    MyList.erase(x);
}

収量:「エラー:「。」の前に一次式が必要です。トークン"

助けてくれてありがとう。

4

1 に答える 1

3

MyListはタイプです:

typedef std::unordered_map<int, Item> MyList;

しかし、あなたはそれをオブジェクトのように使用しています:

MyList[12] = item1;

おそらく、typedefを入れるのは間違いでした。

于 2012-06-29T05:46:18.743 に答える