0

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

map < char, string > mydictionary;

我继续将值填充为:-

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

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

为什么会发生此错误?我该如何解决这个问题?

4

2 回答 2

4

您不能将语句放在全局范围内;语句只能进入函数。(请注意,这与变量初始化程序不同,变量初始化程序可以进入全局范围)。

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

map < char, string > mydictionary {{'a', "asdf"}, {'b', t}};
于 2012-10-06T17:48:21.697 回答
2

你不能拥有这些

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

在函数之外。您需要将它们移动到一个函数内(在其他函数中main或其他函数中并调用它)。

任何与定义或声明不同的东西都必须放在函数内。

于 2012-10-06T17:46:54.667 回答