C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++で指定されたインデックス範囲[L– R]の配列要素を削除しますか?


まず、元の配列と配列要素を削除するための排他的な範囲を定義し、元の配列の長さ-

を見つけましょう。
int arr[] = { 2,4,6,8,10,12,14,16,18,20};
int L = 2, R = 6;
int length = sizeof(arr) / sizeof(arr[0]);

ここで、配列をループし、インデックス位置(i)がLまたはRより大きい場合、インデックス値(i)が範囲LとRの間にある場合、配列要素の位置をシフト(削除)するために使用される変数kをインクリメントします。 R.また、指定された配列の新しい長さはkになります。

int k = 0;
for (int i = 0; i < length; i++) {
   if (i <= L || i >= R) {
      arr[k] = arr[i];
      k++;
   }
}

与えられたインデックスの配列要素を削除することをよりよく理解するために、次の実装を見てみましょう

#include <iostream>
using namespace std;
int main() {
   int arr[] = { 2,4,6,8,10,12,14,16,18,20};
   int L = 2, R = 6;
   int length = sizeof(arr) / sizeof(arr[0]);
   int k = 0;
   for (int i = 0; i < length; i++) {
      if (i <= L || i >= R) {
         arr[k] = arr[i];
         k++;
      }
   }
   length=k;
   for (int i = 0; i < length; i++)
      cout << arr[i] << " ";
   return 0;
}

出力

上記のコードは次の出力を生成します-

2 4 6 14 16 18 20

  1. C ++の特定の配列で固定小数点(インデックスに等しい値)を検索します

    ここでは、特定の配列で固定小数点を見つける方法を説明します。配列では、値がそのインデックスと同じである場合、1つの要素は固定小数点として示されます。このプログラムは、存在する場合は値を返し、そうでない場合は-1を返します。配列は負の数も保持できます。そして、データ要素が並べ替えられます。 ここでは、二分探索アプローチを使用して、O(log n)時間でこの問題を解決します。最初に、中間要素が固定小数点であるかどうかを確認し、はいの場合はそれを返します。そうでない場合は、中間要素のインデックスがインデックスの値よりも大きい場合、インデックスが大きい場合の2つの状況があります。 、次に、右側で固定

  2. C++での配列インデックス演算子[]のオーバーロード

    演算子のオーバーロードは、オブジェクト指向プログラミング言語の機能において重要な役割を果たします。演算子のオーバーロードは、コンパイル時または静的ポリモーフィズムの一種です。 アルゴリズム Begin Create a class Arr and declare size of array. Inside the class, initialize all the elements by using for loop. Print the all elements. End. サンプルコード #include <iostream> #include <std