首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cpp初始化头中的std::map

Cpp初始化头中的std::map
EN

Stack Overflow用户
提问于 2021-10-12 02:57:39
回答 2查看 51关注 0票数 0

我想在my_cpp.h头文件中初始化std::map:

代码语言:javascript
复制
std::map<std::string, double> my_map;
my_map["name1"] = 0;
my_map["name2"] = 0;

但是出现了一个编译错误:

代码语言:javascript
复制
error: ‘my_map’ does not name a type

有人能解释一下为什么这对C++新手不起作用吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-12 03:12:39

您不能在这样的.h文件中初始化地图。这些赋值语句需要放在函数/方法中。

否则,直接在它的声明中初始化map,例如

代码语言:javascript
复制
std::map<std::string, double> my_map = {
    {"name1", 0.0},
    {"name2", 0.0}
};
票数 2
EN

Stack Overflow用户

发布于 2021-10-12 03:15:39

头文件只是一个声明,或者直接初始化映射。你可以像这样修改你的代码:

代码语言:javascript
复制
#include <map>
#include <string>

const std::map<std::string, double> my_map = {
  { "name1", 0 },
  { "name2", 0 }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69534591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档