Cpp 在 header 中初始化 std::map
Cpp initialize std::map in header
我想在 my_cpp.h
header 文件中初始化一个 std::map:
std::map<std::string, double> my_map;
my_map["name1"] = 0;
my_map["name2"] = 0;
但是出现编译错误:
error: ‘my_map’ does not name a type
有人可以解释为什么这对 C++ 新手不起作用吗?
谢谢
您不能像那样在 .h
文件中初始化地图。这些赋值语句需要放在 function/method 中。
否则,直接在其声明中初始化地图,例如
std::map<std::string, double> my_map = {
{"name1", 0.0},
{"name2", 0.0}
};
头文件只是一个声明,或者直接初始化映射。
您可以这样修改您的代码:
#include <map>
#include <string>
const std::map<std::string, double> my_map = {
{ "name1", 0 },
{ "name2", 0 }
};
我想在 my_cpp.h
header 文件中初始化一个 std::map:
std::map<std::string, double> my_map;
my_map["name1"] = 0;
my_map["name2"] = 0;
但是出现编译错误:
error: ‘my_map’ does not name a type
有人可以解释为什么这对 C++ 新手不起作用吗? 谢谢
您不能像那样在 .h
文件中初始化地图。这些赋值语句需要放在 function/method 中。
否则,直接在其声明中初始化地图,例如
std::map<std::string, double> my_map = {
{"name1", 0.0},
{"name2", 0.0}
};
头文件只是一个声明,或者直接初始化映射。 您可以这样修改您的代码:
#include <map>
#include <string>
const std::map<std::string, double> my_map = {
{ "name1", 0 },
{ "name2", 0 }
};