0

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

我想要做的是在一个名为 ROOT 的程序中使每个“行”成为 TTree 上的一个 TBranch。每行是一个数字列表,对应于单个直方图上所有 bin 中的数据,每列都填充了与每个直方图中特定 bin(即:bin 3)对应的数字(如果有意义的话)。我只需要找到一种方法来按直方图/行分隔数据,并在可能的情况下将它们视为自己的独立事物。如果这不连贯,我深表歉意!

4

2 回答 2

0

我不太了解您问题的第二部分,所以我将介绍如何访问二维数组(也称为矩阵)中的行。如果这不是您所问的,则必须扩展您的问题。

多维数组通常设置为包含其他数组(等等)的数组。二维数组可能如下所示:

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);
}

此示例将为您生成一个用零填充的二维数组。但是,您指定是否myMatrix保存保存列值的行,或者是否myMatrix保存保存行值的列。在这种情况下,我选择它来包含行。您可以知道访问矩阵的特定行,myMatrix[i]这将返回第 i 行作为std::vector<int>

于 2012-06-21T18:11:17.673 回答
0

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

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]给需要指针参数的函数。

于 2017-02-25T12:26:04.773 回答