文章目录

  • 使用范围for语句处理多维数组

使用范围for语句处理多维数组

举个例子,使用范围for语句输出多维数组(ia)所有值:

for (const auto &row : ia)for (auto col : row)cout << col << endl;

本循环中并没有任何写操作,可仍将外层循环的控制变量声明成了引用类型,这是为了避免数组被自动转换成指针。如果不用引用类型,则循环如下述形式:

for (auto row : ia)for (auto col : row)

程序无法通过编译。第一个循环想要遍历ia的所有元素(实际上是大小为4的数组),但由于row不是引用类型,所以编译器初始化row时会自动将这些数组形式的元素转换成指向数组内首元素的指针。这样得到的row类型就是int*,显然内层循环“for (auto col : row)”就不合法了,其含义成了编译器试图在一个int*内遍历,和程序的初衷相去甚远。

因此,要使用范围for语句处理多维数组,除了最内层的循环外,其他所有循环的控制变量都应该是引用类型。

关于范围for语句的使用相关推荐

  1. Python 上下文管理器和 with 语句

    1. 上下文管理器概念 什么是 Python 的上下文管理器(Context Managers)呢? ​ 含有 __enter__ 和 __exit__ 方法的对象就是.上下文管理器存在的目的是管理 ...

  2. Go 学习笔记(62)— Go 中 switch 语句中的 switch 表达式和 case 表达式之间的关系

    switch 语句对 switch 表达式的结果类型,以及各个 case 表达式中子表达式的结果类型都是有要求的. 毕竟,在 Go 语言中,只有类型相同的值之间才有可能被允许进行判等操作. 1. sw ...

  3. Linux shell 学习笔记(9)— 循环语句(for、while)以及更改字段分隔符

    1. for 语句 bash shell 中 for 命令的基本格式如以下,$var 变量包含着这次迭代对应的当前列表项中的值. for var in list docommands done 也可以 ...

  4. Linux shell 学习笔记(8)— 使用结构化命令(if-then 语句、数值比较、字符串比较、文件比较、case 语句)

    1. 使用 if-then 语句 最基本的结构化命令就是if-then语句.if-then语句有如下格式. if command then ​ commands fi 或者 if command; t ...

  5. Python学习--not语句

    布尔型True和False,not True为False,not False为True,以下是几个常用的not的用法: (1) not与逻辑判断句if连用,代表not后面的表达式为False的时候,执 ...

  6. 合肥工业大学—SQL Server数据库实验八:使用聚集函数的SELECT语句

    在数据库EDUC中用SQL语句实现如下查询: 1) 查询学生的总人数 -- 查询学生的总人数 select count(*) from student select count(1) from stu ...

  7. 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表

    SQL语句创建和删除基本表 1. 编写6个基本表 2. 修改基本表结构,完整性约束条件 3. 用Drop table 语句删除基本表 1. 编写6个基本表 设有简单教学管理的6个关系模式如下: 系(系 ...

  8. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  9. 怎么查找执行比较慢的sql语句

    一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句. 2,long_query_tim ...

  10. C++ break语句,continue语句,goto语句

    break 语句的作用: 跳出当前循环,中断当前循环 #include <iostream> using namespace std; int main() {for (int i = 0 ...

最新文章

  1. nbalive05 editor 正式版
  2. Android Jetpack组件App Startup简析
  3. 【2556】传说中的数据结构 sdutOJ
  4. Firefox的input缓存
  5. ios APP开发简单实例
  6. ionic开发ios app
  7. Redis源码学习-MasterSlave的命令交互
  8. 你是在用计算机算你的人生经历吗,计算机人生规划
  9. P1035 [NOIP2002 普及组] 级数求和(python3实现)
  10. swiper6.0改造 “翻页按钮”:自定义style样式和position - 案例篇
  11. vue中watch数组或者对象
  12. java项目中的pom依赖在哪_java – 如何包含pom项目中的所有模块
  13. 洪恩软件c语言,C语言英才宝典app下载
  14. vue项目如何做到每30秒刷新1次接口?
  15. 蜗居中折射的三类男人
  16. zencart网店模板
  17. 什么是导数和切线?以及他们的关系?
  18. luogu P3975 [TJOI2015]弦论 SAM
  19. 虚拟服务器 vmotion,vSphere vMotion能够同时迁移多少台虚拟机?
  20. srm555 div2

热门文章

  1. uinty粒子系统子物体变大_Unity2018粒子系统全息讲解,坑深慎入(3)
  2. 嵌入式MODEM通迅技术
  3. C++设计模式之三 单例模式
  4. 凤凰os linux界面,让deepin linux系统与凤凰os共用个人目录的方法
  5. 創建oracle用戶及表空間,window,linux下創建oracle用戶及表空間 對比 易於學習
  6. efishell无法开机shell_开机出现efi shell卡住不动了解决方法全集
  7. mapgis转arcgis数据后发现属性表内没有数据
  8. WAMP Server 无法启动的解决方法
  9. 【转】DICOM之Print!!!!!!!!!
  10. 【转】WPF从我炫系列3---内容控件的用法