我被要求创建一个有5行和未知列的矩阵。 而我的老板希望我使用1维缓冲区。连接5行缓冲区。 我不明白这是什么意思,请有人给我一个简单的例子,请!双缓冲区vs双数组C++
随着阵列我可以做
double[][] arr = new double[5][someNumber];
但随后他说,大小会受到限制。
所以我不知道他的意思是使用双缓冲一下,我不是很好@ C++
非常感谢你,一个例子是太好了!
我被要求创建一个有5行和未知列的矩阵。 而我的老板希望我使用1维缓冲区。连接5行缓冲区。 我不明白这是什么意思,请有人给我一个简单的例子,请!双缓冲区vs双数组C++
随着阵列我可以做
double[][] arr = new double[5][someNumber];
但随后他说,大小会受到限制。
所以我不知道他的意思是使用双缓冲一下,我不是很好@ C++
非常感谢你,一个例子是太好了!
对于R
行和列C
声明double arr[R * C]
,和arr[i * C + j]
是在细胞[i, j]
的元素。
这概括为任意的尺寸。
展平这样一个数组可能是一个非常有用的优化,尤其是当您使用动态数组(如std::vector
)时,您可以获取单个动态数组而不是每行一个动态数组。
但这是数组不是它,我是说缓冲区 –
@LanNguyen“缓冲区”是一种使用模式,而不是数据类型。 –
@NikosChantziaras所以当你这样做的时候,你是在创建一个二维数组,还是一维,它对我来说看起来是二维的。 –
听起来你说
double *arr[5];
for(unsigned int x = 0; x < 5; ++x)
{
arr[x] = new double[someNumber];
}
因为,你知道,你有5个是肯定的,和未知的部分我的假设是,这是你如何引用它。
对我来说,这是一个指针数组,每个指针指向一行的开始,我是正确的吗? –
就是这样。或多或少,这相当于'arr [5] []的*假设*;''arr [0]'将指向某个地址,它将是'someNumber' double的大小。 – M4rc
是的,这也是我想到的,谢谢你的澄清。 –
['Double buffering'](http://en.wikipedia.org/wiki/Multiple_buffering)是对I/O技术或计算机图形技术的参考,而不是缓冲区或“double”类型的数组'。另外,C不是C++,使用'new'就意味着严格地使用C++。 –