Range based for loop by cpp
最近落了好多没写了,感觉已经废了。继续C++的笔记,关于range-based for loop的使用,一个C++11的标准。首先我会给出样例,然后针对gcc的报错,说明Ubuntu16.04-LTS下gcc的更新方法。
range-based for loop
C++11标准中增加了一种新的for循环的方式,称为range-based for loop,即基于范围的for循环,这个类似于python中直接进行列表索引的for循环。请看下面的样例,分别是C++和python的for循环写法,
C++
|
|
python
|
|
二者的输出结果均为如下形式,12345011223344
显然,相对于C99的for循环,基于范围的这种for循环能够减少多行代码量。
g++ update
为了应用C++11/14的新标准,gcc/g++
也需要做相应的更新,由于我还在Ubuntu-16.04 LTS的坑里,gcc的最高版本为5.4。如果编译时看到如下的警告,则需要对gcc进行更新。1warning: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11
更新方法如下,123sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt updatesudo apt install gcc-7 g++-7
Reference
- Ubuntu升级GCC版本
- Sams Teach Yourself C++ in One Hour a Day