C/C++历史版本+[Error] range-based 'for' loops are not allowed in C++98 mode解决方法

博主最近发现在C++11里for循环有一种更方便的用法:
for(auto &(变量):范围)

	vector<int> v;
	for(vector<int>::iterator it=v.begin() ;it!=v.end() ;it++ )
		printf("%d ",*it);
		printf("\n");
		
	for(auto &s:v)
	printf("%d ",s);

上面两个是等价的,第二种这样代码少好多,可是当我使用经典的devc++时,居然报错:

[Error] range-based 'for' loops are not allowed in C++98 mode

c++98和c++11是什么关系呢?
在这里插入图片描述
在这里插入图片描述
涉及到C/C++版本和标准的最常见的地方就是编译选项了,比如常见的 -std=c++11 就是使用C++11的标准编译,关于 C/C++ 各个版本标准的差异我们可能无法全部记住,但是一些主要的版本更替,还是很有必要了解一下的。
源自:https://blog.csdn.net/albertsh/article/details/89192242
具体方法:
原来那个是c++11的新特性,我们的编译器不支持C++,那怎么让它知道这是C++11支持的呢?【其他编译器也可以】
一:在编译器里找到“编译选项”

在devc++里,我们点击“工具”,点击里面编译选项

二:在编译选项卡里,打勾“编译时加入以下命令
在框里输入:-std=<你要的版本>。
比如-std=c++11,点击确认就ok了。
在这里插入图片描述
其他编译器差不多的,我们只是改了一下编译标准,升级了你的编译器使用的标准。

发布了68 篇原创文章 · 获赞 15 · 访问量 9008

猜你喜欢

转载自blog.csdn.net/qq_43791377/article/details/103588534