繁体   English   中英

引用2D数组中的整个数组行

[英]Referring to an entire row of arrays in a 2D array

我现在有一个二维数字数组,我需要做的是弄清楚如何仅用一个名字来指代它们的整个“行”。

我正在尝试做的是在名为ROOT的程序中,使每个“行”成为TTree上的TBranch。 每行是与单个直方图上所有bin中的数据相对应的数字的列表,并且每一列均填充有与每个直方图中的特定bin(即bin 3)相对应的数字(如果有意义)。 我只需要找到一种方法即可按直方图/行将数据分离,并在可能的情况下将其视为自己的东西。 如果不连贯,我深表歉意!

我不太了解您问题的第二部分,因此我只解决如何访问2D数组(又称矩阵)中的行的问题。 如果这不是您的要求,则必须扩大您的问题。

多维数组通常设置为包含其他数组的数组(依此类推)。 2D数组可能如下所示:

std::vector<std::vector<int> > myMatrix;
for (int y = 0; y < LIMIT_Y; ++y) {
    std::vector row;
    for (int x = 0; x < LIMINT_X; ++x) {
        row.push_back(0);
    }
    myMatrix.push_back(row);
}

本示例将为您生成一个填充有零的2D数组。 但是,您可以指定myMatrix保存包含列值的行还是myMatrix保存包含行值的列。 在这种情况下,我选择它包含行。 您可以通过myMatrix[i]知道矩阵的特定行,这将以std::vector<int>返回第i行

如果您像这样创建了一个二维数组:

char** arr;
// fill up arr with elements
int rows = 20, columns = 50;
arr = (char**) malloc (rows * columns * sizeof(char));

并且您要引用第5行,您可以执行以下操作:

arr[4] // here, the index 4 refers to the entire 5th row of arr

例如,您可以将arr[4]传递给需要指针参数的函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM