トップページ > 過去ログ > 記事閲覧
三次元配列
名前:キチ 日時: 2008/09/22 00:23

二次元配列は int Count[2][5]={ {0,1,2,3,4}, {10,11,12,13,14}, }; と宣言時に初期化できますが、三次元配列の場合、どのように記述したらいいのでしょうか?

Page: 1 |

Re: 三次元配列 ( No.1 )
名前:Sura 日時:2008/09/22 01:02

さらに中括弧を使います。 (例 #include<iostream> using namespace std; int main() { int a[3][3][3] = { //第一括弧 { //第二括弧 { 1, 2, 3}, //第三括弧 { 4, 5, 6}, { 7, 8, 9} }, { {10, 11, 12}, {13, 14, 15}, {16, 17, 18} }, { {19, 20, 21}, {22, 23, 24}, {25, 26, 27} } }; for(int i = 0; i < 3; ++i) { for(int j = 0; j < 3; ++j) { cout << "("; for(int k = 0; k < 3; ++k) { cout << a[i][j][k]; if(k < 2) cout << ","; } cout << ")"; if(j < 2) cout << ","; } cout << endl; } return 0; }
Re: 三次元配列 ( No.2 )
名前: 日時:2008/09/22 10:50

C/C++では配列で宣言された領域の初期化では、 全て{}のみで行うことが出来ます。 #include <iostream> using namespace std; #define ARRAY_SIZE 3 int main( void ) { int i, j, k; int a1[ARRAY_SIZE][ARRAY_SIZE][ARRAY_SIZE] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, }; int a2[ARRAY_SIZE][ARRAY_SIZE][ARRAY_SIZE] = { { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }, { { 10, 11, 12 }, { 13, 14, 15 }, { 16, 17, 18 } }, { { 19, 20, 21 }, { 22, 23, 24 }, { 25, 26, 27 } } }; // a1 for( i = 0; i < ARRAY_SIZE; ++i) { for( j = 0; j < ARRAY_SIZE; ++j) { cout << "("; for( k = 0; k < ARRAY_SIZE; ++k) { cout << a1[i][j][k]; if(k < 2) cout << ","; } cout << ")"; if(j < 2) cout << ","; } cout << endl; } // a2 for( i = 0; i < ARRAY_SIZE; ++i) { for( j = 0; j < ARRAY_SIZE; ++j) { cout << "("; for( k = 0; k < ARRAY_SIZE; ++k) { cout << a2[i][j][k]; if(k < 2) cout << ","; } cout << ")"; if(j < 2) cout << ","; } cout << endl; } return 0; } このように、どちらで初期化しても、 きちんとした値で初期化することが可能です。 これは宣言された多次元配列のメモリ領域が 連続していることを意味します。 #これは2次元配列でも同様に行うことが出来ます

Page: 1 |