在结构中使用自定义 class 初始化地图
Initialize map with custom class inside struct
我在 struct
中有以下 map
:
struct X {
std::map<double, Color> colorMap
};
我无法从结构内部初始化 map
,尤其是因为 Color
class.
我试过以下方法:
std::map<double, Color> max_speed_color_map = {{0.5, Color()}, {1, Color()}, {1.5, Color()}, {2, Color()});
但我得到这个错误:
error: C2797: 'colorMap': list initialization inside member initializer list or non-static data member initializer is not implemented
根据@PiotrSkotnick 的回答,解决方案是在结构构造函数中声明映射:
X() : colorMap({{0.5, Color()}, {1, Color()}}) : {}
我在 struct
中有以下 map
:
struct X {
std::map<double, Color> colorMap
};
我无法从结构内部初始化 map
,尤其是因为 Color
class.
我试过以下方法:
std::map<double, Color> max_speed_color_map = {{0.5, Color()}, {1, Color()}, {1.5, Color()}, {2, Color()});
但我得到这个错误:
error: C2797: 'colorMap': list initialization inside member initializer list or non-static data member initializer is not implemented
根据@PiotrSkotnick 的回答,解决方案是在结构构造函数中声明映射:
X() : colorMap({{0.5, Color()}, {1, Color()}}) : {}