我现在有一个2D数组,我需要做的是弄清楚如何引用整个"行"他们只有一个名字......
我想做的是让每个"行"在名为ROOT的程序中的TTree上的TBranch。每行是与单个直方图上的所有箱中的数据相对应的数字列表,并且每列用每个直方图中的特定箱(即:箱3)对应的数字填充(如果这是有意义的话)。我只需要找到一种通过直方图/行分隔数据的方法,如果可能的话,将它们视为自己的个体。如果这不连贯,我道歉!
答案 0 :(得分:0)
我真的不明白你问题的第二部分,所以我只是讨论如何访问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]
知道矩阵的特定行的访问权限,这会将第i行作为std::vector<int>
答案 1 :(得分: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]
传递给需要指针参数的函数。