Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::无序映射未声明的标识符,使用Visual C++;2008 #包括 #包括 #包括 使用名称空间std; int main() { 无序映射m; m[1]=“一”; m[2]=“两个”; m[4]=“四”; m[3]=“三”; m[2]=“两个!”; cout_C++_Visual Studio 2008_Unordered Map - Fatal编程技术网

C++ std::无序映射未声明的标识符,使用Visual C++;2008 #包括 #包括 #包括 使用名称空间std; int main() { 无序映射m; m[1]=“一”; m[2]=“两个”; m[4]=“四”; m[3]=“三”; m[2]=“两个!”; cout

C++ std::无序映射未声明的标识符,使用Visual C++;2008 #包括 #包括 #包括 使用名称空间std; int main() { 无序映射m; m[1]=“一”; m[2]=“两个”; m[4]=“四”; m[3]=“三”; m[2]=“两个!”; cout,c++,visual-studio-2008,unordered-map,C++,Visual Studio 2008,Unordered Map,也许您正在寻找的是stdext::hash_map(包含在中) 据我所知,VC++2008 express不包括TR1。您的代码在VS2010中正常工作。输出为2!如果这是您没有得到的结果。可能您应该切换到VC++2010 express Edition。 可能VC++2008在TR1中没有包含TR1无序映射可以从头文件中以std::TR1::无序映射的形式获得 在即将推出的C++0x标准中,它可以从头文件中以std::unordered_map的形式获得 因此,您应该为vc 2008使用标题和

也许您正在寻找的是
stdext::hash_map
(包含在
中)


据我所知,VC++2008 express不包括TR1。

您的代码在VS2010中正常工作。输出为2!如果这是您没有得到的结果。可能您应该切换到VC++2010 express Edition。

可能VC++2008在TR1

中没有包含TR1

无序映射
可以从
头文件中以
std::TR1::无序映射
的形式获得

在即将推出的C++0x标准中,它可以从
头文件中以
std::unordered_map
的形式获得

因此,您应该为vc 2008使用
标题和
std::tr1::无序映射
命名空间,因为vc 2008不支持C++0x

回答您在评论中引用的问题。
另外,请确保下载

在“支持的新功能”列表下选中

#include <iostream>
#include <string>
#include <unordered_map>

using namespace std;

int main()
{
    unordered_map< int, string > m;

    m[1] = "one";   
    m[2] = "two";
    m[4] = "four";
    m[3] = "three";
    m[2] = "TWO!";
    cout << m[2] << endl;

    m.clear();
    return 0;
}

< C++ > VisualC++ 2008声明了命名空间<代码>代码> STD::Tr1,而不是<代码> STD<代码>。参见,节要求。

< P> C++ 03,<代码> unOrdEdjPad < /C> >定义在<代码> STD::Tr1< /Cord>命名空间(如果它完全定义)。< /P> 因此,您应该使用:

New containers (tuple, array, unordered set, etc)
std::tr1::无序映射m;

在Visual Studio 2008中,技术报告1(TR1)中的类位于命名空间std::TR1中。 加:


您的代码。

+1以获得适当的建议,但仍然有一个错误-->致命错误C1083:无法打开包含文件:“tr1/unordered_map”:没有这样的文件或目录谢谢,非常好的尾码,它可以工作。这就是我缺少的+1它说它在express edition中工作吗?我只是尝试安装它,希望是错误的,但是它失败了。由于问题的状态明确表示,我假设TR1必须缺席。
std::tr1::unordered_map<int, std::string> m;
using namespace std::tr1;