我正在使用VS2012,我想要包含以下地图:
#include<iostream>
#include<map>
std::map<int, int> code_map = {
{65, 97},
{66, 98},
{67, 99},
{68, 100},
{69, 101},
{70, 102},
};
然而,IDE告诉我
IntelliSense:“{...}”的初始化对于类型为“”std :: map,std :: allocator&gt;&gt;“”
的对象无效有人知道为什么会出现这种错误吗? 如果我使用VS2012,我想我正在使用C ++ 11,所以我认为这样可行。
感谢您的帮助。
答案 0 :(得分:6)
Visual Studio 2012不支持初始化列表。有关它支持的C ++ 11功能,请参阅此内容:http://msdn.microsoft.com/en-us/library/vstudio/hh567368%28v=vs.120%29.aspx
答案 1 :(得分:1)
根据C ++ 11标准,您的代码完全没用。
我记得在某处读过Microsoft C ++编译器没有实现统一初始化和初始化列表Visual C++ Compiler November 2012 CTP的发布。也许您只需要升级编译器。
答案 2 :(得分:-1)
这里有一些添加地图的例子:
http://www.cplusplus.com/reference/map/map/map/
我自己没有在c ++中使用过地图,但是从其他人的说法来看,Visual Studio在添加该功能方面有点慢。
此链接可以帮助您以其他方式执行此操作。