C++新标准提供的范围for语句.这种语句遍历给定序列中个元素并对序列中每一个值执行某种操作,其语法形式是:

  其中,expression部分是一个对象,用于表示一个序列。declaration部分负责定义一个变量,该变量将用于访问序列中的基础元素。每次迭代,declaration部分的变量会被初始化为expression部分的下一个元素值。确保类型相容最简单的办法是使用auto类型说明符。

例1:代码中的 auto 关键字让编译器来决定 c的类型,每次迭代后,str的下一个字符赋值给 c

例2:普通的for语句

例3:

例4:

C++为for提供for range的用法。对于STL(vector/list/map)的遍历带来了极大的书写遍历。

  由于expression部分是用花括号括起来的初始值列表、数组或者vector或string等类型的对象。这些类型的共同特点是拥有能返回迭代器的begin和end成员。

例5:

附例5代码:

//小问学编程
#include<iostream>
#include<map>
using namespace std;int main()
{map<int,string> mis;mis[0]="china";mis[1]="america";mis.insert({100,"canada"});for(auto& elem:mis)cout<<elem.first<<":"<<elem.second<<endl;return 0;
}

C++新特性探究(五):for循环、范围for语句相关推荐

  1. C++新特性探究(十五):bind

    相关博文:C++新特性探究(十四):function 相关博文:C++头文件<functional>和bind.placeholders占位符使用简单例子 相关博文:<Essenti ...

  2. C++新特性探究(13.6):右值引用再探究

    相关博文: C++新特性探究(十三):右值引用(r-value ref)&&探究 C++新特性探究(十六):move constructor移动构造 C++新特性探究(13.5):右值 ...

  3. C++新特性探究(十四):function

    相关博文:C++头文件<functional>和bind.placeholders占位符使用简单例子 相关博文:<Essential C++>笔记之设计一个泛型算法(二) 相关 ...

  4. Java 8新特性探究(二)深入解析默认方法

    转载自 Java 8新特性探究(二)深入解析默认方法 什么是默认方法,为什么要有默认方法 简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法.只需在方法名前面加个default关键字即可. ...

  5. C++新特性探究(9.1):functor仿函数探究

    相关博文:C++新特性探究(九):functor仿函数 Functor 对象模拟函数   把类对象,像函数名一样使用.   仿函数(functor),就是使一个类的使用看上去像一个函数.其实现就是类中 ...

  6. C++新特性探究(13.5):右值引用

    相关博文: C++新特性探究(十三):右值引用(r-value ref)&&探究 C++新特性探究(十六):move constructor移动构造 C++新特性探究(13.5):右值 ...

  7. C++新特性探究(十六):move constructor移动构造

    相关博文: C++新特性探究(十三):右值引用(r-value ref)&&探究 C++新特性探究(十六):move constructor移动构造 C++新特性探究(13.5):右值 ...

  8. C++新特性探究(十三):右值引用(r-value ref)探究

    相关博文: C++新特性探究(十三):右值引用(r-value ref)&&探究 C++新特性探究(十六):move constructor移动构造 C++新特性探究(13.5):右值 ...

  9. C++新特性探究(十):Lambda

    一. 匿名函数   简短函数,就地书写,调用.即Lambda存在的意义,常用于取代作回调用的简短函数指针与仿函数.   就地书写,因只有函数体,即无函数名,也称匿名函数. 格式 最小的 Lambda: ...

最新文章

  1. Spark学习之简介
  2. 纠结于ajax开发中 response的contentType 问题
  3. 网站使用mysql_使用网站的mysql
  4. [转载] 杜拉拉升职记——23 “You deserve it”的两种解释
  5. Java多线程4:synchronized锁机制
  6. python爬虫下载模块_python爬虫系列(4.5-使用urllib模块方式下载图片)
  7. 冒泡、鸡尾酒、选择、插入、归并、快速排序的C++程序
  8. linux 查看软连接的源头,linux 软连接怎么查看原始地址
  9. 计算机网络 教学大纲 谢希仁,《计算机网络》教学大纲.doc
  10. vue-router: 路由传参
  11. PHP get_class_methods函数用法
  12. 抽象工厂模式类图及代码示例
  13. php商城项目开发视频_ThinkPHP开发大型商城项目实战视频_ThinkPHP商城开发案例
  14. html化学式编辑器,常用的化学式编辑器有哪些?4款化学式编辑器分享
  15. bin文件夹下的roslyn文件夹
  16. 程序员:你30岁前的职业规划是什么?未来的职业规划又是什么?
  17. 技术人的七大必备特质
  18. 头文件里应该写些什么
  19. 微信输入法语音转文字设计点
  20. 基于LM334芯片的恒流源调试

热门文章

  1. 对Gson解析的理解
  2. 基于JAVA+Servlet+JSP+MYSQL的在线答疑系统
  3. 基于JAVA+SpringMVC+Mybatis+MYSQL的高校教学质量评价管理系统
  4. 7.3联盟最多的服务器,1.7.3 超级服务器inetd和xinetd
  5. MySQLSyntaxErrorException: Table 'taotao.tbuser' doesn't exist
  6. 剑指offer--3
  7. 数据结构与算法 —— 链表linked list(05)
  8. mysql 以及mysql可视化工具下载安装地址
  9. SQL 内置排名函数 DENSE_RANK
  10. 项目记录:solr4.2 在tomcat7 的两种(singlecore + multicore) 配置安装 及solrj 的初步使用...