从二维C++数组中提取行

Extracting a row from a 2-dimensional C++ array

本文关键字:数组 提取 C++ 二维      更新时间:2023-10-16

我有一个名为resolvedStress的二维数组,它可以占用m x n行和列。我想定义一个名为 criticalData 的新变量,它是一个仅包含一行resolvedStress的一维数组。如果我想将第 4 行分配给criticalData,写正确吗:

float* criticalData = &resolvedStress[4 * n];

我是C++新手,所以我还不是很有信心!

数组

本身就是一个静态指针,不需要使用"&",正如你所说,你想指向第 4 行,所以它将是 3 而不是 4,因为数组索引从 0 开始。

float* criticalData = resolvedStress[3];

假设数组的组织方式如下:

[ row0 | row1 | row2 | .... ]

也就是说,一个按顺序包含矩阵行的 1D 数组,然后&resolvedStress[4 * n]将是指向 row4 的指针 - 这实际上是数组的第 5 行(必须喜欢零索引)。

如果要访问m X n数组的第四行,可以将每一行访问为

  resolvedStress[0] will point to first row of the 2D array.
  resolvedStress[1] will point to second row of the 2D array.
  ...
  resolvedStress[m-1] will point to mth row of the 2D array.

对于您的情况,这将是

   float* criticalData = resolvedStress[3];