我想在my_cpp.h头文件中初始化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++新手不起作用吗?谢谢
发布于 2021-10-12 03:12:39
您不能在这样的.h文件中初始化地图。这些赋值语句需要放在函数/方法中。
否则,直接在它的声明中初始化map,例如
std::map<std::string, double> my_map = {
{"name1", 0.0},
{"name2", 0.0}
};发布于 2021-10-12 03:15:39
头文件只是一个声明,或者直接初始化映射。你可以像这样修改你的代码:
#include <map>
#include <string>
const std::map<std::string, double> my_map = {
{ "name1", 0 },
{ "name2", 0 }
};https://stackoverflow.com/questions/69534591
复制相似问题