采用c++11新特性中的基于范围for循环,不必去操心数组越界(边界)问题,因此非常的方便,特别是在项目开发中。

语法形式:
for(declaration:expression)
{statement
}

其中:
expression部分表示一个对象,用于表示一个序列。
declaration部分负责定义一个变量,该变量将被用于访问序列中的基础元素。
每次迭代,declaration部分的变量会被初始化为expression部分的下一个
元素值。

示例1:

#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
int main()
{int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };for (auto val : arr){cout << val << " ";}system("pause");return 0;
}输出结果:
1 2 3 4 5 6 7 8 9 10

示例2:
若迭代器变量的值希望能够在for中被修改,可以采用引用&的方式;

#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
int main()
{int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };for (auto &val : arr){if (val == 5){val += 1;}cout << val << " ";}system("pause");return 0;
}输出结果:
1 2 3 4 5 6 6 7 8 9 10

示例3:
对于STL标准模板库也同样适用。

#include<iostream>
#include<stdlib.h>
#include<string>
#include<vector>
using namespace std;
int main()
{vector<int> arr;arr.push_back(1);arr.push_back(3);arr.push_back(5);arr.push_back(7);arr.push_back(9);for (auto &val : arr){cout << val << " ";}system("pause");return 0;
}输出结果:
1 3 5 7 9

示例4.

#include<iostream>
#include<stdlib.h>
#include<string>
#include<map>
using namespace std;
int main()
{map<int, string> arr;arr.insert(pair<int, string>(1, "hello"));arr.insert(pair<int, string>(2, "world."));for (auto &val : arr){cout << val.first << "," << val.second << endl;}system("pause");return 0;
}输出结果:
1,hello
2,world.

在编写的c++程序中,如果是窗口,有时会一闪就消失了,如果不想让其消失,在程序中添加:
system("pause");
注意:不要再return 的语句之后加,那样就执行不到了。

2.基于范围的for循环特点
(1)和普通循环一样,也可以采用continue跳出循环的本次迭代。
(2)用break来终止整个循环

3.基于范围的for循环使用的要求及依赖条件
(1)for循环迭代的范围是可以确定的;如数组的第一个元素和最后一个元素便构成了for选好的迭代范围。
(2)对于用户自定义的类,若类中定义便实现的有begin、end函数,则这个begin、end便是for循环的迭代范围。
(3)基于范围的for循环要求迭代器的对象实现:++ ==等操作符。
(4)对于STL标准模板库中(如:vector,set,list,map,queue,deque,string等)的各种容器使用“基于范围的for循环”是不会有
任何问题的,因为这些容器中都定义了相关操作。

C++11之基于范围的for循环相关推荐

  1. C++起始(内联函数,宏的优缺点,const关键字,auto关键字(C++11)基于范围的for循环(C++11). 指针空值nullptr(C++11))

    内联函数 概念 以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销, 内联函数提升程序运行的效率 函数前增加inline关键字将其改成内联函数,在编 ...

  2. [C++11]基于范围的for循环

    C++11提供了一种新型的for循环形式 - 基于范围的for循环 语法: for (declaration : expression) {//循环体 } 在上面的语法格式中,declaration表 ...

  3. 2-6:C++快速入门之内联函数,auto关键字,C++11基于范围的for循环和nullptr

    文章目录 一:内联函数 (1)宏函数的缺陷 (2)内联函数的概念 (3)内联函数的特性 二:auto关键字(C++11) (1)auto简介 (2)auto使用注意事项 三:基于范围的for循环(C+ ...

  4. 【C++基础】auto关键字(C++11)(auto的使用细则;auto不能推导的场景;auto的使用场景;基于范围的for循环)

    九.auto关键字 9.1 auto简介 在早期C/C++(C++98)中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它.因为在函数内定义的变量默认 ...

  5. mysql matlab for循环嵌套循环语句吗_C++: for_each 和 基于范围的for循环

    普通的for循环 for_each函数模板 基于范围的for循环 普通用的像: for(int i = 0; i 这种的for循环就不说了, 下面主要说一下后两个,做个笔记. 以后用for循环可以考虑 ...

  6. C++中基于范围的for循环

    程序的基本结构包括三种:顺序结构,选择结构(也称分支结构)和循环结构(也称 程序的基本控制结构包括三种:顺序结构.选择结 重复结构).循环结构的实现方法比较多,除了使用 while(). do whi ...

  7. 基于范围的for循环

    基于范围的for循环是C++11新特性,可以用它来很方便的遍历整个数组/容器 auto自动类型推断:用于从初始化表达式中推断出变量的数据类型,通过auto的自动类型推断,可以大大简化编程工作 具体看例 ...

  8. 基于注意力机制的循环神经网络对 金融时间序列的应用 学习记录

    摘要: 概况论文内容,包含解决的问题,解决的方法,成果 金融时间序列由于高噪声性以及序列间的相关性,导致传统模型的预测精度和泛化能力往往较低.为了克服这一问题,提出一种基于注意力机制的循环神经网络预测 ...

  9. 《中国人工智能学会通讯》——11.52 基于直推式学习的异质人脸图像 合成

    11.52 基于直推式学习的异质人脸图像 合成 前面介绍的方法都是基于归纳式学习(InductiveLearning) 的,这些方法取得了不错的效果,但是它们也使得测试样本风险误差增加,进而可能影响合 ...

最新文章

  1. Zookeeper之启动常见错误及解决方法
  2. python一箭穿心代码怎样复制,Python Decimal copy_sign()用法及代码示例
  3. 1968. [AHOI2005]约数研究【数论】
  4. CodeForces - 2B The least round way
  5. windows分辨率修改工具_Windows 字体优化,这几个办法能帮你解决
  6. TOUGHRADIUS 项目介绍
  7. .NET托管内存类应用的内存泄漏分析和诊断(转)
  8. hadoop源码_HBASE源码导入IDEA并开启DEBUG调试
  9. 安徽工程大学大学计算机基础,安徽工程大学.pdf
  10. 合理使用Blob/Clob
  11. vb6 由于超出容量限制 不能创建新事务_Executors类创建四种常见线程池
  12. Golang里的Future/Promise
  13. 金庸年度双十佳广告爆笑版 (1)
  14. vue.js官方中文文档
  15. Authentication—身份验证流程
  16. 孩子成长-跟同学相处
  17. 关于PHP中如何跟踪报错的手段
  18. 计算机的录像功能在哪里找,电脑录像功能在哪
  19. 电脑开机后黑屏的解决办法
  20. 南京航空航天大学计算机考研经验贴

热门文章

  1. ActiveMQ—安装配置及使用
  2. windows下如何在一台机器上安装两个MYSQL数据库
  3. Usage and Idioms——Categories
  4. Android WebView使用与JavaScript使用
  5. html5小趣味知识点系列(一)autofocus
  6. 【转】Winform输入法控制
  7. hdu 1561 The more, The Better_树状dp
  8. [zt]petshop4.0 详解之八(PetShop表示层设计)
  9. linux ls没有反应_Linux入门②“命令格式”
  10. jwt 私钥_一分钟带你了解JWT认证