【C#】Queueの要素を1次元配列にコピーする方法(CopyToメソッドの使い方)
C#の Queue<T>.CopyTo(T[], Int32) メソッドを使うと、キュー(Queue)内の要素を指定した位置から1次元配列へコピーできます。既存の配列にキューの内容を統合したい場合などに便利なメソッドです。
基本構文
queue.CopyTo(array, arrayIndex);
- array:コピー先となる1次元配列
- arrayIndex:コピーを開始する配列のインデックス(0から始まる)
サンプルコード
実際に CopyTo メソッドを使用した例を見てみましょう。
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Queue<string> queue = new Queue<string>();
queue.Enqueue("K");
queue.Enqueue("T");
String[] strArr = new String[4];
strArr[0] = "One";
strArr[1] = "Two";
strArr[2] = "Three";
strArr[3] = "Four";
Console.WriteLine("\nArray elements: ");
for (int i = 0; i < strArr.Length; i++) {
Console.WriteLine(strArr[i]);
}
// 配列のインデックス2以降にキューの要素をコピー
queue.CopyTo(strArr, 2);
Console.WriteLine("\nAfter copying array contains: ");
for (int i = 0; i < strArr.Length; i++) {
Console.WriteLine("arr[{0}] : {1}", i, strArr[i]);
}
}
}実行結果
上記のコードを実行すると、以下のような出力が得られます。
One Two Three Four After copying array contains: arr[0] : One arr[1] : Two arr[2] : K arr[3] : T
解説
この例では、まず「K」「T」の2つの要素をキューに追加しています。初期状態の配列には「One」「Two」「Three」「Four」が格納されています。
queue.CopyTo(strArr, 2) を呼び出すと、キューの要素が配列のインデックス2以降に順番に上書きされます。そのため、「Three」と「Four」がキューの要素「K」と「T」で置き換えられ、先頭の2つの要素はそのまま残ります。
注意点
- コピー先の配列は、開始インデックスからキューの要素数分の空きが必要です。容量が不足している場合は
ArgumentExceptionがスローされます。 - 配列やインデックスが
nullの場合も例外が発生するため、事前のチェックを推奨します。
-
C言語で配列内の一意な要素(重複しない要素)を検索するプログラム
問題の概要配列の中から、他と重複していない「一意な要素」を見つけるには、二重ループを使用します。外側のループで現在注目している要素を取り出し、内側のループでその要素が配列内の他の場所にも存在するかどうかを確認します。解決策以下の配列を例に考えてみましょう。15, 15, 16, 15, 13, 15この場合、配列内で一度しか現れていない要素は 16 と 13 の2つです。アルゴリズム配列内の一意な要素(重複しない要素)を見つけるための手順は以下の通りです。ステップ1: 配列を宣言し、実行時に配列の要素を入力します。ステップ2: 配列を走査し、現在注目している要素が配列内の他の位置にすでに存在す
-
C言語でキューに要素を挿入する方法を徹底解説!基本概念からサンプルコードまで
データ構造とは、データを体系的かつ効率的に整理・格納するための仕組みです。データ構造は、その構成方法によって大きく以下の2種類に分類できます。線形データ構造 − データが一直線上に順序立てて配置される構造です。例として、配列、構造体、スタック、キュー、連結リストなどが挙げられます。非線形データ構造 − データが階層的・網目的に配置される構造です。例として、木(ツリー)、グラフ、集合、テーブルなどが挙げられます。キュー(Queue)とはキューは線形データ構造の一つで、後端(リア/rear)から要素を挿入し、前端(フロント/front)から要素を削除するという特徴を持っています。キューにおけるデー