#include <iostream>
#include <vector>

class My_vec {
	enum { ROWS = 0, COLS = 1};
	std::vector<int> v;
	int sz[2];
	
public:
	My_vec(int rows, int cols)
	:v(rows*cols)
	{
		sz[ROWS] = rows;
		sz[COLS] = cols;
	}
	
	inline int* operator[](int n) {
		return &v[n*sz[ROWS]];
	}
};

int main() {
	My_vec v {2, 2};
	for (auto i = 0; i < 2; ++i)
		for (auto j = 0; j < 2; ++j)
			v[i][j] = i * 2 + j;
	
	for (auto i = 0; i < 2; ++i) {
		for (auto j = 0; j < 2; ++j)
			std::cout << v[i][j] << ' ';
		std::cout << '\n';
	}
	return 0;
}