【发布时间】:2013-03-31 18:50:24
【问题描述】:
据我所知,我所做的一切都是正确的,并且收到了错误消息:
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;
我能够消除第一个错误,但是当我尝试保留时,我仍然收到第二个错误消息。
EDIT2:如下所述,reserve 必须进入 main 并且我需要使用 flag 进行编译
-std=c++0x
不过,还是出现了与unordered_map相关的错误,即:
error: 'class std::tr1::unordered_map<std::basic_string<char>, int>' has no member named 'reserve'
【问题讨论】:
-
提供一个完整的例子
-
您使用的是哪个编译器的哪个版本?您正在使用哪些选项来编译代码? 请记住,
std::unordered_map可用于 C++11。 -
g++.exe(MinGW 下的 g++)。 gcc 版本是 4.6.2。那么有没有办法让我使用 unordered_map?当我使用命名空间 tr1 时,我可以声明我的 unordered_map,但是当我尝试保留空间时,我仍然收到错误。
-
您不能在函数或方法定义之外调用函数或方法。对
reserve的调用必须移至main。
标签: c++ types unordered-map