auto可以自动帮我们推断变量的类型 但是在直接使用g++编译的时候出现了auto关键字定义的变量报错了,报的错误大概都是: “X does not name a type” ”X was not declared in this scope“ 我的情况: 这是因为g++编译默认把auto当作声明自动声明周期的关键字(C++98标准),而不是自动类型的关键字; 在C++11标准中auto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型。 因此解决此问题,需要在编译的时候添加-std=c++11的编译选项: g++ -std=c++11 main.cpp -o main