对于许多C++程序员来说,循环遍历二维数组是日常开发过程中很基本也很重要的部分。在本篇文章中,我们将介绍C++中的几个不同方式来循环遍历二维数组。
一、使用foreach循环遍历二维数组
使用foreach循环遍历二维数组是C++11新引入的功能。该方法语法简单并且易于阅读,因为你只需要提供要遍历的数组名称即可。在本例中,我们将遍历一个二维数组,该数组存储了学校四个班级的学生成绩。
int scores[4][3] = { {89, 92, 78}, {85, 88, 82}, {75, 85, 95}, {66, 77, 68}, }; for (auto &row : scores) { for (auto &col : row) { std::cout << col << " "; } std::cout << std::endl; }
运行结果如下:
89 92 78 85 88 82 75 85 95 66 77 68
二、使用for循环遍历二维数组
使用for循环来遍历二维数组是一种通用的方法。我们可以使用两个嵌套的循环来访问所有元素。在本例中,我们将创建一个3x3的二维数组,并使用for循环遍历数组中的所有元素。
int arr[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { std::cout << arr[i][j] << " "; } std::cout << std::endl; }
运行结果如下:
1 2 3 4 5 6 7 8 9
三、使用for循环遍历二维数组c语言
对于有经验的C语言程序员,以下是使用for循环遍历二维数组的方法:
int arr[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("%d ", arr[i][j]); } printf("\n"); }
运行结果如下:
1 2 3 4 5 6 7 8 9
四、使用增强for循环遍历二维数组
增强for循环也可以用于遍历二维数组,但需要使用指向数组行的指针。在本例中,我们将遍历一个存储了九张牌的三个堆栈的数组。
int stacks[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, }; for (int i = 0; i < 3; i++) { int* row_pointer = stacks[i]; for (auto &col : row) { std::cout << *row_pointer << " "; row_pointer++; } std::cout << std::endl; }
运行结果如下:
1 2 3 4 5 6 7 8 9
五、使用uibot循环遍历二维数组
uibot foreach循环是开源库uibot中的一部分,可用于遍历二维数组并对所有元素执行操作:
#include "uibot/foreach.h" int arr[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; ui::foreach(arr, [&](int& elem, size_t i, size_t j) { std::cout << elem << " "; });
运行结果如下:
1 2 3 4 5 6 7 8 9
六、使用vuefor循环二维数组遍历
vuefor循环是在Vue.js中使用的一种特殊语法,可用于遍历数组并生成HTML元素。在C++中,我们可以使用vuefor循环来执行类似的操作。在本例中,我们将使用vuefor循环遍历一个存储了五个人职业的二维数组。
int careers[5][2] = { {"John", "Developer"}, {"Mary", "Designer"}, {"Bob", "Architect"}, {"Alice", "Engineer"}, {"Karen", "Manager"} }; std::cout << ""; for(auto& row : careers) { std::cout << "";"; for(auto& column : row) { std::cout << column << " "; } std::cout << ""; } std::cout << "
运行结果如下:
John DeveloperMary DesignerBob ArchitectAlice EngineerKaren Manager
结论
上述几种遍历二维数组的方法在不同的情况下使用。对于需要运行时速度最快的场合,使用C++ for循环是最好的选择。对于需要简洁、易于阅读的代码,则可以使用C++11 foreach循环以及第三方库uibot。对于需要直接生成HTML代码并进行遍历的场合,使用vuefor循环是不错的选择。使用这些方法可以使你的C++代码更加简洁、易读和高效。