C++11 range for 遍历多维数组, 迭代变量添加引用 "&"的问题

本文探讨了在C++11中使用range for遍历多维数组时,如何正确处理引用的问题。通过示例代码,解释了不加引用"&"会导致遍历类型从数组变为指针,从而引发错误。解决方案是在外层循环中添加引用,以确保编译器不会自动将类型转换为指针。同时,提到了decltype作为替代方案,可以避免类型推导错误。
摘要由CSDN通过智能技术生成

问题背景

       auto 是 C++ 11 扩展的新特性,用于自动类型推导。不过,如果你希望推导出的类型为引用(&),就要手动在变量名前加 '&';如果你还需要变量是常量的话,也要手动加入 'const' 修饰符。

       长话短说,本篇博文的目的是,阐述 使用 ranger for  遍历多维数组时, 变量名添加引用的 '&' 的问题解释它,本博文的参考文献[1] 《C++ Primer 5th》中虽有提及,但篇幅较小,所以在这里详细地理清思路。


 


引出问题

       下面,用 auto 和 range for (C++ 11 扩展的遍历特性) 来遍历 二维数组 来引出问题。(range for,样式为 for ( xxxx : yyyy),是 for 循环的一种形式,本文假定你已经知道了它的用法)


       给出代码如下所示:

#include <iostream>
#include <cstddef>
using namespace std;

int main() {
	conste
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值