Using a Range for with Multdimensional Arrays.
来源:互联网 发布:my sql has gone away 编辑:程序博客网 时间:2024/05/29 14:22
size_t cnt = 0;for (auto &row: ia) for (auto &col : row) { col = cnt; ++cnt;}
In the previous example ,we used frefernces as our loop control variables because we wanted to change the elements in the array. However, there is a deeper reason for using references. As an example, consider the following loop:
for (const auto &row: ia) for ( auto col : row) cout << col << endl;
This loop does not write to the elements, yet we still define the control variable of the outer loop as refernce. We do so in order to avoid the normal array to pointer conversion. Had we neglected the refernce and written these loops as:
for (auto row : ia) for (auto col : row)
our program would not compile. As before, the first for iterates through ia, whose elements are arrays of size 4. Because row is not a reference, when the compiler initializes row it will convert each array element (like any other object of array type) to a pointer that array's first element. As a result, in this loop the type of row is int*. The inner for loop is illegal. Despite our intentions, that loop attempts to iterate over an int*.
Note: To use a multidimensional array in a range for, the loop control varaible for all but the innermost array must be references.
0 0
- Using a Range for with Multdimensional Arrays.
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range !!!
- Search for a Range
- Search for a Range
- Search For A Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- 蜗牛—JavaWeb之个人信息管理系统(三)
- Xss攻击原理及防止办法简介
- 错误提示:ODBC驱动程序不支持动态记录集
- STM32相关
- 学校感悟之- 数据库
- Using a Range for with Multdimensional Arrays.
- STM8问题汇总
- linux平台Redis安装
- POJ 1845 Sumdiv
- 在Wiondows下用powershell编译C/C++程序
- Leetcode: 3Sum
- foobar2000 v1.3
- CAD通用规范
- hdu3746Cyclic Nacklace