我有一个.h文件,我在其中创建了一个字典,如下所示: -
map < char, string > mydictionary;
我继续将值填充为: -
string t = "test";
mydictionary['a'] = "asdf";
mydictionary['b'] = t;
当我尝试构建项目时,上面提到C++ requires a type specifier for all declarations
的两行出错了。不幸的是,我发现错误信息非常神秘,我不确定如何处理/解决它。
为什么会发生此错误?我怎么能解决这个问题?
答案 0 :(得分:4)
您不能在全球范围内发表声明;语句只能用于函数。 (请注意,这与变量初始值设定项不同,后者可以在全局范围内)。
您需要在函数中初始化地图,或者(在C ++ 11中)使用初始化列表:
map < char, string > mydictionary {{'a', "asdf"}, {'b', t}};
答案 1 :(得分:2)
你不能拥有这些
mydictionary['a'] = "asdf";
mydictionary['b'] = t;
在一个函数之外。你需要在一个函数内移动它们(在main
或其他一些函数中调用它)。
与定义或声明不同的任何内容必须放在函数内。