[英]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.