use*_*912 1 c++ arrays multidimensional-array
我正在尝试创建一个class grid包含数据成员的unsigned NR,unsigned NC它还应该包含一个2D数组double Coordiantes[NR][NC]。我希望初始化数据成员NR,并NC通过类的构造函数。我试图避免二维数组的动态分配,因为我更喜欢连续内存分配,以便尽可能避免缓存丢失。
我不确定是否可以,但是任何输入都会有所帮助。
class Array2D {
public:
vector<int> v;
int nc;
Array2D(int NR, int NC) : v(NR*NC), nc(NC) {}
int* operator[](int r) { return &v[r*nc]; }
};
int main()
{
Array2D array2d(2, 3);
array2d[0][0] = 1;
array2d[1][2] = 6;
}
Run Code Online (Sandbox Code Playgroud)
这使您可以创建一个功能类似于2D数组的类。它速度快,数据连续。