Loading article…

コンピュータサイエンスにおいて、ギザギザ配列は不規則配列 [1]や不規則配列 [2]とも呼ばれ、配列の要素が異なる長さになる配列の配列であり[3]、出力として視覚化するとギザギザのエッジの列が生成されます。対照的に、2次元配列は常に長方形であるため[4]、ギザギザ配列を多次元配列と混同しないでください。ただし、前者は後者をエミュレートするためによく使用されます。
Java、PHP、Python (多次元リスト)、Ruby、C#.NET、 Visual Basic.NET、Perl、JavaScript、Objective-C、Swift、Atlas Autocodeなどの言語の配列の配列は、Iliffe ベクトルとして実装されます。
例
C#とJava [5]では、次のコードでギザギザ配列を作成できます: [6]
int [][] c ; c = new int [ 2 ][]; // 2 行を作成c [ 0 ] = new int [ 5 ]; // 行 0 に 5 列c [ 1 ] = new int [ 3 ]; // 行 1 に 3 列を作成
CおよびC++では、次のコードを使用して、ジャグ配列を (スタック上に) 作成できます。
int jagged_row0 [] = { 0 , 1 }; int jagged_row1 [] = { 1 , 2 , 3 }; int * jagged [] = { jagged_row0 , jagged_row1 };
C/C++ では、ポインターの配列を使用して、ジャグ配列を (ヒープ上に) 作成することもできます。
int *ギザギザ[ 5 ];
ギザギザ[ 0 ] = malloc ( sizeof ( int ) * 10 );ギザギザ[ 1 ] = malloc ( sizeof ( int ) * 3 );
C++/CLIでは、次のコードでジャグ配列を作成できます: [7]
using namespace System ; int main () { array < array < double > ^> ^ Arrayname = gcnew array < array < double > ^> ( 4 ); // 配列には 4 つの要素が含まれますreturn 0 ; }
Fortranでは、割り当て可能なコンポーネントを持つ派生型を使用して、ギザギザの配列を作成できます。
type :: Jagged_type整数、割り当て可能:: row (:)終了 type Jagged_type type ( Jagged_type ) :: Jagged ( 3 ) Jagged ( 1 )% row = [ 1 ] Jagged ( 2 )% row = [ 1 , 2 ] Jagged ( 3 )% row = [ 1 , 2 , 3 ]
Pythonでは、ギザギザの配列はネイティブではありませんが、リストの内包表記を使用して、任意の次元の行列をサポートする多次元リストを作成できます。[8]
multi_list_3d = [[[] for i in range ( 3 )] for i in range ( 3 )]
# 生成結果: [[[], [], []], [[], []], [[], []], [[], []]]
multi_list_5d = [[[] for i in range ( 5 )] for i in range ( 5 )]
# 生成結果: [[[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], []]]
参照
参考文献
- ^ キング、KN Cプログラミング。WWノートン。p.301。ISBN 978-0-393-97950-3。
- ^ データ構造とアプリケーションハンドブック。CRC Press。2004年。
- ^ Jesse Liberty、Brian MacDonald (2008 年 11 月 18 日)。Learning C# 3.0。「O'Reilly Media, Inc.」。pp. 210– 。ISBN 978-0-596-55420-0。
- ^ Don Box (2002)。Essential .Net: 共通言語ランタイム。Addison-Wesley Professional。p. 138。ISBN 978-0-201-73411-9。
- ^ 「Java の Jagged Array - GeeksforGeeks」。GeeksforGeeks。2016年 2 月 3 日。2018年 8 月 13 日閲覧。
- ^ Paul J. Deitel、Harvey M. Deitel (2008 年 9 月 26 日)。C# 2008 for Programmers。Pearson Education。p. 40。ISBN 978-0-13-701188-9。
- ^ 「Jagged Arrays」. FunctionX . 2014年11月26日閲覧。
- ^ 「Python のリストの解説」Alvin.io . 2016 年1 月 31 日閲覧。
