41 Array2D() : xSize(0), ySize(0), data(nullptr) {};
45 xSize(xSize), ySize(ySize) {
63 for (
int y = 0;
y < ySize;
y++)
64 data[
y] =
new T[xSize]();
67 <<
") at " << data << std::endl;
74 for (
int y = 0;
y < ySize;
y++) {
80 <<
") at " << data << std::endl;
93 for (
int y = 0;
y < ySize;
y++) {
94 data[
y] =
new T[xSize];
95 memcpy(data[
y],other.data[y],xSize*
sizeof(T));
104 if (0 > x || x >= xSize)
105 std::cout <<
"Array2D " << data <<
" X=" << x <<
" out of range [0.." <<
getXSize() <<
")\n";
106 if (0 > y || y >= ySize)
107 std::cout <<
"Array2D " << data <<
" Y=" << y <<
" out of range [0.." <<
getYSize() <<
")\n";
108 std::cout << std::flush;
130 return (x >= 0) && (x < xSize);
135 return (y >= 0) && (y < ySize);
int getXSize() const
get Xsize
bool inRangeX(int x) const
check x in range
bool inRange(int x, int y) const
check if in range
int getYSize() const
get Ysize
T & operator()(int x, int y) const
bool inRangeY(int y) const
check Y in range
void clear()
Clear memory.
void allocateZeros(int xSize, int ySize)
Allocate memory and initialized with zeros.
Array2D & operator=(const Array2D &other)
Assignment.
Array2D(int xSize, int ySize)
T * getRow(int y) const
get y-th row
Array2D(const Array2D &other)
Copy constructor.