C++で要素を配列に挿入する方法とアルゴリズム


  1. 要素を挿入する位置を指定して挿入する方法:

    • 配列の特定のインデックスに新しい要素を追加するには、次の手順を実行します。
      1. 挿入したい位置の後にある要素を後ろにずらすために、ループを使って配列を後ろから順に走査します。
      2. 挿入したい位置に新しい要素を代入します。
    • 以下にコード例を示します:

      #include <iostream>
      using namespace std;
      void insertElement(int arr[], int size, int position, int element) {
       for (int i = size - 1; i >= position; i--) {
           arr[i + 1] = arr[i];
       }
       arr[position] = element;
      }
      int main() {
       int arr[10] = {1, 2, 3, 4, 5};
       int size = 5;
       int position = 2;
       int element = 10;
       insertElement(arr, size, position, element);
       size++; // 配列のサイズを更新
       for (int i = 0; i < size; i++) {
           cout << arr[i] << " ";
       }
       return 0;
      }

      上記の例では、insertElement関数を使用して、位置2に要素10を挿入しています。出力結果は、1 2 10 3 4 5となります。

  2. 要素を挿入する位置を自動的に探索して挿入する方法:

    • 配列内の特定の値を探し、その直前または直後に新しい要素を挿入する方法もあります。
    • 以下にコード例を示します:

      #include <iostream>
      using namespace std;
      void insertElementAfterValue(int arr[], int size, int value, int element) {
       int position = -1; // 見つかった位置を格納する変数
       for (int i = 0; i < size; i++) {
           if (arr[i] == value) {
               position = i + 1; // 挿入位置は見つかった位置の次
               break;
           }
       }
       if (position != -1) {
           insertElement(arr, size, position, element);
           size++; // 配列のサイズを更新
       }
      }
      int main() {
       int arr[10] = {1, 2, 3, 4, 5};
       int size = 5;
       int value = 3;
       int element = 10;
       insertElementAfterValue(arr, size, value, element);
       for (int i = 0; i < size; i++) {
           cout << arr[i] << " ";
       }
       return 0;
      }

      上記の例では、insertElementAfterValue関数を使用して、値3の直後に要素10を挿入しています。出力結果は、1 2 3 10 4 5となります。

以上のように、C++で要素を配列に挿入する方法にはさまざまなアプローチがあります。必要に応じてこれらのアルゴリズムを使用して、配列に要素を挿入することができます。