在Visual Studio中放置并插入无序的_映射? 我在用VS2010用C++中的无序映射做最基本的事情:插入一些东西。 unordered_map<string, string> cats; //cats.insert("Adam", "Streak"); //cats.emplace("Kyra", "Shadow"); 无序地图猫; //猫。插入(“亚当”、“条纹”); //猫。安置(“凯拉”,“影子”);

在Visual Studio中放置并插入无序的_映射? 我在用VS2010用C++中的无序映射做最基本的事情:插入一些东西。 unordered_map<string, string> cats; //cats.insert("Adam", "Streak"); //cats.emplace("Kyra", "Shadow"); 无序地图猫; //猫。插入(“亚当”、“条纹”); //猫。安置(“凯拉”,“影子”);,c++,visual-studio,visual-studio-2010,c++11,C++,Visual Studio,Visual Studio 2010,C++11,我确信我犯了一个非常简单的错误,但我已经花了两个小时试图找出它的用处。上面两个注释行在未注释时都会出现错误 当cats.插入(“Adam”,“Streak”)未注释,错误为: 错误1错误C2678:二进制“==”:未找到接受“const std::string”类型左侧操作数的运算符(或没有可接受的转换)c:\program files(x86)\microsoft visual studio 10.0\vc\include\xFunction 当cats.emplace(“Kyra”,“Sha

我确信我犯了一个非常简单的错误,但我已经花了两个小时试图找出它的用处。上面两个注释行在未注释时都会出现错误

cats.插入(“Adam”,“Streak”)未注释,错误为:

错误1错误C2678:二进制“==”:未找到接受“const std::string”类型左侧操作数的运算符(或没有可接受的转换)c:\program files(x86)\microsoft visual studio 10.0\vc\include\xFunction

cats.emplace(“Kyra”,“Shadow”)未注释,错误为:

错误1错误C2780:'std::pair std::_Hash::emplace(_Valty&)&'):需要1个参数-提供2个参数

我很困惑,因为互联网上有几个例子使用了这种精确的语法。例如,cplusplus.com


我做错了什么?

两个函数都接受
std::pair

您的编译器的旧版本,并且只部分支持C++11。。。谷歌很容易找到详细信息,但如果可以的话,升级会更有效率。你说是准确的sintax吗?不幸的是,这样做时,我会得到相同的错误C2678。在这一点上,我倾向于VisualStudio被打破。您使用的是哪个版本?我使用的是VS 2015,它运行得非常好。我还添加了一个ideone.com链接,它也在那里工作。谢谢你。我没有意识到无序映射是在c++11中引入的。升级到VS2015后,其工作正常。
cats.insert(std::make_pair("Adam", "Streak"));
cats.emplace(std::make_pair("Kyra", "Shadow"));
cats.insert(std::pair<std::string, std::string>("Adam", "Streak"));