15

私が知る限り、すべてを正しく実行していますが、次のエラー メッセージが表示されます。

error: 'unordered_map' does not name a type
error: 'mymap' does not name a type

私のコードには、次のものがあります。

#include <unordered_map>

using namespace std;

//global variable
unordered_map<string,int> mymap;
mymap.reserve(7000);

void main {
  return;
}

ここで何が欠けているのかわかりません....

編集:宣言を更新すると

std::tr1::unordered_map<string,int> mymap;

最初のエラーは解消できましたが、予約しようとすると 2 番目のエラー メッセージが引き続き表示されます。

EDIT2:以下で指摘したように、予約はメインに入る必要があり、フラグでコンパイルする必要があります

-std=c++0x

ただし、unordered_map に関連するエラーがまだあるようです。つまり、次のとおりです。

error: 'class std::tr1::unordered_map<std::basic_string<char>, int>' has no member named 'reserve'
4

3 に答える 3

3

できないexecute arbitrary expressions at global scopeので、入れるべきです

mymap.reserve(7000);

内部メイン。

これは、map や vector などの他の STL コンテナーにも当てはまります。

于 2013-03-31T19:06:38.490 に答える