将值添加到 .h 中的映射时出现 C++ 错误

标签 c++ stl

我有一个 .h 文件,我在其中创建了一个字典,如下所示:-

map < char, string > mydictionary;

我继续将值填充为:-

string t = "test";
mydictionary['a'] = "asdf";
mydictionary['b'] = t;

当我尝试构建项目时,上面提到的两行错误 C++ requires a type specifier for all declarations。不幸的是,我发现错误消息非常神秘,并且不确定如何处理/解决它。

为什么会出现这个错误?我该如何解决这个问题?

最佳答案

您不能在全局范围内放置语句;语句只能放在函数中。 (请注意,这与变量初始值设定项不同,后者可以在全局范围内进行)。

您需要在函数中初始化映射,或者(在 C++11 中)使用初始化列表:

map < char, string > mydictionary {{'a', "asdf"}, {'b', t}};

关于将值添加到 .h 中的映射时出现 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12762221/

相关文章:

c++ - &vector[0] 和 vector.begin() 有什么区别?

c++ - 尝试使用 pthreads 访问共享数据数组时出现错误,无法访问内存地址

c++ - 将数据插入 vector

c++ - 如何更改 map 中的元素并获取其位置?

c++ - 如何 fold STL 容器?

c++ - boost::geometry 中无效几何的数据集

c++ - msvc 2010 应用程序 0xc000007b 错误

c++ - 在流中的下一行之后定位迭代器的最简单方法?

c++ - 用于映射一对一关系的 STL 类型?

c++ - 在使用 stop_token 等待条件变量_any 时是否需要拥有锁来请求停止?