二次元配列を要素とするコンテナについて
Posted: 2015年6月15日(月) 13:24
#include <iostream>
#include <vector>
using namespace std;
struct A2 {
int v[3][4];
int* operator[](size_t n) { return v[n]; }
};
int main()
{
vector<A2> a(2);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 4; k++) {
cout << ' ' << &a[i][j][k];
a[i][j][k] = (i+1)*100 + (j+1)*10 + (k+1);
}
cout << endl;
}
cout << endl;
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 4; k++) {
cout << ' ' << a[i][j][k];
}
cout << endl;
}
cout << endl;
}
}
この「きちんと実装すればうまく行きそう」というのは、「コンパイルエラーにならない」という意味です。みけCAT さんが書きました:きちんと実装すればうまく行きそうだと思います。
C++11のstd::arrayを使ったり 二次元配列もどきクラスを自作したり などの方法があります。