问题背景
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

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

被折叠的 条评论
为什么被折叠?



