想在头文件(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
const std::map<std::string, double> my_map = {
{ "name1", 0 },
{ "name2", 0 }
};