C++での動的配列の拡張方法は何ですか?
C++の中で、動的配列を拡張する方法は以下の2つあります。
- newとdelete演算子を使用する:
- 新しい大きな配列を作成します。
- 新しい配列に元の配列の要素をコピーする。
- 原始配列のメモリを解放する。
- 新しい配列を指すようにポインタを移動する。
- サンプルコード:
- int* array = new int[10]; // 初期サイズが10の配列を作成
// …
int* newArray = new int[20]; // 新しい大きな配列を作成
for (int i = 0; i < 10; i++) {
newArray[i] = array[i]; // 元の配列の要素を新しい配列にコピーする
}
delete[] array; // 元の配列のメモリを解放
array = newArray; // ポインタを新しい配列に変更 - std::vectorを使用する。
- std::vectorは、C++の標準ライブラリによって提供される動的配列コンテナであり、自動的に拡張されることができます。
- std::vectorにpush_backメソッドを使用して要素を追加すると、コンテナの容量が不足している場合には自動的に拡張されます。
- コードの例:
- #include
// …
std::vector vec; // 空のvectorを作成
// …
vec.push_back(10); // vectorに要素を追加し、容量が不足すると自動的に拡張されます
上記の2つの方法は、動的な配列の拡張を実現することができますが、std::vectorを使用する方がシンプルで便利であり、動的な配列を処理する際にはおすすめです。