基于范围的for循环(C++11)


C++11新增了一种循环:基于范围的for循环。这简化了一种常见的循环任务:对数组(或容器类,如vector和array)的每个元素执行相同的操作,如下例所示

for语句允许简单的范围迭代:(只遍历,不修改)

    int arrayData[] = {1, 2, 3, 4, 5}; for(int x : arrayData) cout << x << " "; cout << endl; string str("some string.");
// auto 类型也是 C++11 新标准中的,用来自动获取变量的类型
for(auto c : str) cout << c << " "; cout << endl;

其中,x最初表示数组arrayData的第一个元素。显示第一个元素,不断执行循环,而x依次表示数组的其他元素。因此,上述代码显示全部的5个元素。总之,该循环显示数组中的每个值。

auto 类型也是 C++11 新标准中的,用来自动获取变量的类型。

 

要修改数组的元素,需要使用不同的循环变量语法:(边遍历,边修改)

    int arrayData[] = {1, 2, 3, 4, 5}; for(int &x : arrayData) { x++; cout << x << " "; } cout << endl; string str("some string."); for(auto &c : str) { c = toupper(c); cout << c << " "; } cout << endl;

 上述的程序使用for语句遍历arrayData数组,每个数组元素乘2;使用for语句遍历一个字符串,并将所有字符全部变为大写;

 

 参考链接:

C++for循环

基于范围的for循环(C++11)

C++11基于范围的for循环


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM