【问题标题】:take one column from a 2D array and store in 1D从二维数组中取出一列并存储在一维中
【发布时间】:2022-11-30 10:04:28
【问题描述】:

我正在尝试使用这个 9 x 3 并仅使用第 3 列存储在它自己的一维数组中:

3    5    8     
6    3    9     
7    5    12     
0    5    5     
1    2    3     
8    2    10     
8    3    11     
9    3    12     
4    1    5     

这就是我要进行转换的内容:

    int index = 0;

     // 2D to 1D conversion
     for (int r = 0; r < N; r++) 
     {
       for (int c = 0; c < 3; c++) 
       {
        end[index++] = start[r][c];
       }
     }

但它给了我整个矩阵中的前 9 个数字:

3    5    8     
6    3    9     
7    5    12 (but vertically)

我只需要第三列,我不知道我做错了什么。

【问题讨论】:

  • Rubber duckie 想知道如果你总是想要同一列,你是否可以解释为什么你有一个 for 循环迭代所有列。
  • @Rubber_duckie 这就是我想要弄清楚的。我想遍历并只获取第 3 列中的整数并存储它们,但无法完全弄清楚。
  • 内层循环遍历第一个,第二个第三列。如果你只想要第三列,你真的应该有一个循环吗?

标签: c++ arrays dynamic


【解决方案1】:

你可以试试这个:

int index = 0;

// 2D to 1D conversion
for (int r = 0; r < N; r++)
{
    end[index++] = start[r][2];
}

【讨论】:

  • 谢谢!我可能一直在想这个。我是编程新手,某些概念并不总是很突出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 2013-05-14
  • 2021-08-01
相关资源
最近更新 更多