为什么我的地图分配会导致编译错误?

Tim*_* MB 2 c++ compiler-errors map

我无法理解为什么这不会编译:

#include <map>
#include <string>

std::map<std::string, std::string> m;
m["jkl"] = "asdf";
Run Code Online (Sandbox Code Playgroud)

我收到此编译器错误:

Line 5: error: expected constructor, destructor, or type conversion before '=' token compilation terminated due to -Wfatal-errors.

我发誓我必须在这里遗漏一些简单的东西.

sep*_*p2k 5

m["jkl"] = "asdf"是一种表达.你不能在函数体之外有一个表达式.函数体之外唯一允许的是声明和定义.

  • `m ["jkl"] ="asdf"`是一个表达式,`m ["jkl"] ="asdf";`是一个语句.是的,既然你问,有时甚至我对自己感到厌倦. (2认同)