C++中在头文件中如何去定义一个map,然后又如何在源文件(my.cpp)中引用

想在头文件(my.h)中利用一个map类型建立一个std::map my_Map

并定义my_Map["one"]    = 1;
            my_Map["two"]    = 2;
            my_Map["three"] = 3;
            my_Map["four"]   = 1;

并且在cpp(my.cpp) 文件中#include “”my.h“”

在compile的过程中报出
error: 'my_Map' does not name a type my_Map["one"]    = 1;
error: 'my_Map' does not name a type my_Map["two"]    = 1;
error: 'my_Map' does not name a type my_Map["three"]    = 1;
error: 'my_Map' does not name a type my_Map["four"]    = 1;

求教大神这是什么原因,是my_Map定义出了什么问题吗?在头文件中如何去定义一个map,然后又如何在源文件(my.cpp)中引用呢?求大神赐教

包含文件.用的方式map第一个参数是键,第二个参数是映射的值

键和值的类型可以自己定,采用的是模版类型

你的map定义有问题,可以这样定义std::map myMap;

头文件中只是申明,或者常量初始化。
cpp中才能赋值等
http://stackoverflow.com/questions/23504339/creating-and-populating-a-map-in-a-header-file-in-c

楼上的正解,你这报的错误也是在头文件里面。容器类变量如果要定义成全局的,必须在某个过程里面初始化。不能直接在文件开头初始化。

#include

#include

using namespace std;

map< CString, int > my_Map;
my_Map["one"] = 1;
my_Map["two"] = 2;
my_Map["three"] = 3;
my_Map["four"] = 1;

#include
#include

const std::map<std::string, double> my_map = {
{ "name1", 0 },
{ "name2", 0 }
};