zoukankan      html  css  js  c++  java
  • 使用范围for语句处理多维数组

    在C++11新标准中新增了范围for语句,所以遍历多维数组可以用如下形式:

    int num[rowCnt][colCnt];
    
    for(auto &row : num){
        for(auto &col : row){
            /*要进行的操作*/
        }
    }

    严格来说,C++语言中没有多维数组,通常所说的多维数组其实是数组的数组。

    比如说 int ia[3][4]; 实际上是定义一个大小为3的数组,数组中的每个元素是一个大小为4的数组。 int ib[10][20][30]; 实际上是定义一个大小为10的数组,它的每个元素都是大小为20的数组,而这些大小为20的数组的元素是大小为30的数组。

    所以上面的遍历代码实际上是第一层for循环取外层数组的每个元素,第二层是取内层数组的每个元素。但是要注意:

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

    因为如果上述例子的row不是引用类型,编译器初始化row时会自动将这些数组形式的元素转换成指向该数组内首元素的指针,这样row的类型就是int*,显然内层的循环就不合法了。

  • 相关阅读:
    两个简单的画验证码图形程序
    Cisco路由技术基础知识详解
    网络管理中的常用命令
    网络管理中的常用命令
    基于SNMP的MIB库访问实现
    SNMP编程基础
    SNMP编程基础
    Cisco路由技术基础知识详解
    两个简单的画验证码图形程序
    模版方法
  • 原文地址:https://www.cnblogs.com/Lightfall/p/9858114.html
Copyright © 2011-2022 走看看