C#のジャグ配列とは?宣言・初期化・要素アクセスの方法をサンプルコード付きで解説
ジャグ配列(Jagged Array)とは
C#におけるジャグ配列とは、「配列の配列」のことです。通常の二次元配列と異なり、内側の配列(行)ごとに異なる長さを持つことができるため、「ギザギザの配列」とも呼ばれます。
ジャグ配列の宣言
int型のジャグ配列 points を宣言するには、次のように角括弧を2つ重ねて記述します。
int[][] points;
ジャグ配列の初期化
宣言したジャグ配列は、次のように初期化できます。
int[][] points = new int[][]{new int[]{10,5},new int[]{30,40}, new int[]{70,80},new int[]{60,70}};この例では、4つの行から構成されており、それぞれの行が2つの要素を持つint型の配列になっています。
ジャグ配列の要素へのアクセス
ジャグ配列の要素には、2つのインデックスを指定してアクセスします。
points[i][j]
最初のインデックス i は「どの配列(行)か」を、2番目のインデックス j は「その配列内のどの要素か」を表します。
C#でジャグ配列を使う完全なサンプルコード
以下は、C#でジャグ配列を扱う完全なサンプルプログラムです。ネストしたforループを使って、各要素を順番に出力しています。
Example
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
int[][] pages = new int[][]{new int[]{400,345},new int[]{320,444}, new int[]{900,430},new int[]{890,340}};
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) {
Console.WriteLine("a[{0}][{1}] = {2}", i, j, pages[i][j]);
}
}
Console.ReadKey();
}
}
}Output(実行結果)
a[0][0] = 400 a[0][1] = 345 a[1][0] = 320 a[1][1] = 444 a[2][0] = 900 a[2][1] = 430
ジャグ配列と多次元配列の違い
ジャグ配列とよく比較されるものに、矩形の多次元配列(例:int[])があります。主な違いは以下の通りです。
- ジャグ配列: 各行の長さを個別に設定でき、柔軟なデータ構造を表現できる。
- 多次元配列: すべての行が同じ長さ(矩形)になる。
また、ジャグ配列の各行の長さは pages[i].Length のように取得できるため、行ごとに異なる処理を行いたい場合にも便利です。
-
C#の多次元配列とは?2次元配列の宣言方法と使い方を実例付きで解説
C#では、多次元配列を扱うことができます。int型の2次元配列は、次のように宣言します。int[] a;多次元配列の中で最もシンプルな形式が2次元配列です。2次元配列とは、1次元配列を要素として持つ配列、すなわち「配列の配列」のような構造をイメージすると分かりやすいでしょう。例えば、次の図は3行4列の2次元配列を表しています。多次元配列の使用例ここからは、実際にC#で多次元配列を操作するサンプルコードを見ていきましょう。以下の例では、5行2列の2次元配列を宣言・初期化し、入れ子になったforループですべての要素を出力します。using System; namespace ArrayApplic
-
Pythonで学ぶ畳み込み(Convolution)の基礎:画像から特徴を抽出する仕組みと実装
本記事では、Python 3.x(またはそれ以前のバージョン)における「畳み込み(Convolution)」について解説します。畳み込みは、ニューラルネットワークや画像の特徴抽出において中心的な役割を果たす基本的な操作です。推奨環境 − Jupyter Notebook前提条件 − NumPy および Matplotlib がインストール済みであることインストール方法必要なライブラリが未インストールの場合は、以下のコマンドで導入できます。>>> pip install numpy >>> pip install matplotlib畳み込みとは畳み込みとは、