// align.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"


#include <vector>

template<int width>
class v :public std::vector<int>{
public:

	v(int n){
		resize(width*n);
	}

	int * operator [] (int n){
		return &at(n*width);
	}

};


int _tmain(int argc, _TCHAR* argv[])
{


	v<2> x(2);

	int i = x[0][0];

	x[0][0] = 1;
	x[0][1] = 2;
	x[1][0] = 3;
	x[1][1] = 4;

	return 0;
}
      • -
// align.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"


#include <vector>

class v :public std::vector<int>{
public:
	int width;
	v(int w,int h)
		:width(w)
	{
		resize(w*h);
	}

	int * operator [] (int n){
		return &at(n*width);
	}

};


int _tmain(int argc, _TCHAR* argv[])
{


	v x(2,2);

	int i = x[0][0];

	x[0][0] = 1;
	x[0][1] = 2;
	x[1][0] = 3;
	x[1][1] = 4;

	return 0;
}