编译错误,g++ 和 c++11

编译错误,g++ 和 c++11

我试图通过 g++ 编译此代码,

#include <iostream>
#include <set>
using namespace std;

std::set<int> s;

int main(){
for(int i=0;i<10;i++) s.insert(i);

for(auto target: s){
cout<<target<<endl;
}
return 0;
}

但是 g++ 4.8 给了我这个错误:

ali@Melkor ~/Desktop/Project $ g++ a.cpp
a.cpp: In function ‘int main()’:
a.cpp:10:10: error: ‘target’ does not name a type
 for(auto target: s){
          ^
a.cpp:14:1: error: expected ‘;’ before ‘return’
 return 0;
 ^
a.cpp:14:1: error: expected primary-expression before ‘return’
a.cpp:14:1: error: expected ‘;’ before ‘return’
a.cpp:14:1: error: expected primary-expression before ‘return’
a.cpp:14:1: error: expected ‘)’ before ‘return’
ali@Melkor ~/Desktop/Project $ 

我的代码有什么问题吗?

答案1

您的代码没有问题,但是汽车说明符自 C++ 编程语言标准的 c++11 版本开始存在。

您必须使用

g++ -std=c++11 a.cpp

编译你的代码。

相关内容