What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
后一修订版两侧同时换到之后的修订记录
cs:programming:cpp:courses:cpp_basic_deep:chpt_3 [2024/04/18 03:10] – [使用类型别名声明多维数组的指针] codingharecs:programming:cpp:courses:cpp_basic_deep:chpt_3 [2024/04/18 03:31] – [使用类型别名声明多维数组的指针] codinghare
行 313: 行 313:
 //注意所有外层的 auto 都需要以引用的方式将数组类型传递给内层循环 //注意所有外层的 auto 都需要以引用的方式将数组类型传递给内层循环
 //否则,内层循环只会得到一个指向外层数组的指针 //否则,内层循环只会得到一个指向外层数组的指针
-//cbegin 和 cend 无法使用指针作为数进行调用,循环无法建立 +//内层循环中 range for 需要使用数组的头指针作为起点,头指针 + 内层组的长度作为终点进行循环 
 +//如果传入的是指针,长度信息丢失,那么将无法进行循环
 for (auto &row : x) for (auto &row : x)
 { {
行 338: 行 339:
     outter++;     outter++;
     std::cout << std::endl;      std::cout << std::endl; 
 +}
 +//纯指针遍历
 +//与之前相同,cbegin 和 cend 需要数组而不是指针,因此内循环需要解引用
 +auto OutterP = std::cbegin(x);
 +while (OutterP != std::cend(x))
 +{
 +    auto InnerP = std::cbegin(*OutterP);
 +    {
 +        while(InnerP != std::cend(*OutterP))
 +        {
 +            std::cout << *InnerP << " ";
 +            InnerP++;
 +        }
 +        std::cout << std::endl;
 +    }
 +    OutterP++;
 } }
 </code> </code>
 +
 ===多维数组与指针=== ===多维数组与指针===
   * 多维数组也可以转化为指针,但只有最高维会进行转换   * 多维数组也可以转化为指针,但只有最高维会进行转换
行 364: 行 382:
 A z2[3]; //等价与 int z2[4][3]; A z2[3]; //等价与 int z2[4][3];
 </code> </code>
 +====Vector====