c++ - 在一个循环中沿对角线循环遍历 2D 数组

标签 c++ arrays multidimensional-array diagonal

如何在一个循环中遍历整个二维数组 例如

我想将对角线元素 push_back 到缓冲区中进行处理:2 到 2、3 到 3、4 到 4 我曾尝试在两个单独的循环中执行此操作,但之后我无法将它们一起处理。

示例二维数组:

0 1 2 3 4 5 6 
1 * * * * * *
2 * * * * * *
3 * * * * * *
4 * * * * * *
5 * * * * * *
6 * * * * * *

因此,(0,1) 到 (1,0) 的缓冲区将是:网格中的一颗星

(0,2) 到 (2,0) 的缓冲区:两颗星

(0,3) 到 (3,0) 的缓冲区:三颗星

等等……

注意缓冲区是一个字符串。

最佳答案

如果您想获取所有对角线元素for 循环看起来像这样:

for(unsigned int i=0;i<yourArrayWidth;i++)
   yourSum += yourArray[i][i];

如果你想要从左上角到右下角的数字(所以“\”),或者:

for(unsigned int i=0;i<yourArrayWidth;i++)
   yourSum += yourArray[yourArrayWidth-i][i];

如果你想要从右上角到左下角的数字(所以“/”)。

地点:

  • yourSum 是您在遍历之前初始化的一些缓冲区。
  • yourArrayWidth 是数组的宽度。
  • yourArray 是您示例中的二维数组,从 [0][0] 开始。

关于c++ - 在一个循环中沿对角线循环遍历 2D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22599316/

相关文章:

c++ - 用Visual C++编程串口arduino

javascript - 保存并显示 Javascript 数组中删除的元素

c++ - 重载运算符 = 用于类型转换

c++ - 如何在 Qt 中对字符串进行转义?

PHP - 帮助我从我的数据库中的这个序列化值数组中获取值

java - Java中如何在不使用Array或String的情况下读取和输出字符?

PHP - 从多维数组中删除条目

c - 如何在 C 中查找动态二维字符数组中的行数?

c - 为什么我们在将多维数组传递给函数时可以省略它的第一维

c++ - 是否可以像 easylogging++ 一样通过链接重载的插入运算符来创建模仿 std::cout 语法的 C++ 类?