配列は複数のデータを格納するために使用され、配列の要素数は実行時に変更できません。この問題は、動的配列のように機能するベクトルを使用することで解決できます。ベクトルクラスには、ベクトルに要素を追加したり、ベクトルから要素を削除したりするためのさまざまな関数があります。 execute()関数は、実行時にベクトルから1つ以上の要素を削除して、ベクトルのサイズを小さくするために使用されます。このチュートリアルでは、この関数の使用法について説明しました。
構文:
この関数の2種類の構文を以下に示します。
イテレータ消去((イテレータの位置)。;
上記のerase()関数は、ベクトルから1つの要素を削除するために使用され、イテレーターを返し、最後に消去された要素が続く要素を指します。
イテレータ消去((イテレータstarting_position、イテレータending_position)。;
上記のerase()関数は、この関数の最初と2番目の引数に記載されている位置に基づいて、ベクトルから複数の要素を削除するために使用されます。
前提条件:
このチュートリアルの例を確認する前に、g ++コンパイラがシステムにインストールされているかどうかを確認する必要があります。 Visual Studio Codeを使用している場合は、必要な拡張機能をインストールして、C ++ソースコードをコンパイルして実行可能コードを作成します。ここでは、Visual StudioCodeアプリケーションを使用してC ++コードをコンパイルおよび実行しています。要素をベクトルに挿入するためのerase()関数のさまざまな使用法を以下に示します。
例-1:最初の要素要素を削除します
次のコードを使用してC ++ファイルを作成し、ベクトルの先頭から要素を削除します。文字列値のベクトルがコードで使用されています。ベクトルの値は、1つのパラメーターを指定したerase()関数を使用して、ベクトルから最初の要素を削除する前後に出力されています。
//必要なライブラリを含める#含む
#含む
を使用して 名前空間時間;
//ベクトルの値を表示します
空所display_vector((ベクター<ストリング>>果物)。
{{
//カウンターを初期化します
intカウンター= 1;
//ループを使用してベクトルの要素を反復して出力します
にとって ((自動彼=果物。始める(()。;彼!=果物。終わり(()。;彼++)。
{{
//要素が最後の要素であるかどうかを確認します
もしも((カウンター!=果物。サイズ(()。)。
費用 << *彼<< '、';
そうしないと
費用 << *彼;
//カウンターを1つインクリメントします
カウンター++;
}
費用 <<endl;
}
int主要((空所)。 {{
//文字列データのベクトルを宣言します
ベクター<ストリング>>果物= {{ 'オレンジ'、'バナナ'、'マンゴー'、「ジャックフルーツ」、「ライチ」 };
//ベクトルの既存の値を出力します
費用 << '削除前のベクトルの値:' <<endl;
display_vector((果物)。;
//ベクトルから最初の要素を削除します
果物。消去((果物。始める(()。)。;
//削除後にベクトルの既存の値を出力します
費用 << 'NS削除後のベクトルの値: ' <<endl;
display_vector((果物)。;
戻る 0;
}
出力:
上記のコードを実行すると、次の出力が表示されます。
例-2:複数の要素を削除する
次のコードを使用してC ++ファイルを作成し、erase()関数を使用してベクターから複数の要素を削除します。コードでは整数値のベクトルが使用されています。ここでは、ベクトルから削除される要素の範囲を設定するために2つのイテレーターが使用されています。ベクターから複数の要素を削除するために、erase()関数が2つのパラメーターとともに使用されています。
//必要なライブラリを含める#含む
#含む
を使用して 名前空間時間;
//ベクトルを表示します
空所display_vector((ベクター<int>>nums)。
{{
//ループを使用してベクトルの値を出力します
にとって((自動彼=nums。始める(()。;彼!=nums。終わり(()。 ;彼++)。
費用 << *彼<< '';
//新しい行を追加します
費用 << 'NS';
}
int主要(()。 {{
//整数データのベクトルを宣言します
ベクター<int>>intArray{{ 678、435、960、231、800、387、634、267、409、294};
//ベクトルの既存の値を出力します
費用 << '削除前のベクトルの値:' <<endl;
display_vector((intArray)。;
//ベクトルから要素の範囲を削除する2つのイテレータを宣言します
ベクター<int>> ::: イテレータstartEle、endEle;
//イテレータを最初の位置に設定します
startEle=intArray。始める(()。;
//開始イテレータを2インクリメントします
前進((startEle、2)。;
//イテレータを最後の位置に設定します
endEle=intArray。終わり(()。;
//終了イテレータを3デクリメントします
前進((endEle、-3)。;
//要素の範囲を削除します
intArray。消去((startEle、endEle)。;
//削除後にベクトルの既存の値を出力します
費用 << 'NS削除後のベクトルの値: ' <<endl;
display_vector((intArray)。;
戻る 0;
}
出力:
上記のコードを実行すると、次の出力が表示されます。イテレータの範囲に応じて、ベクトルの3番目の位置から7番目の位置までの要素が削除されています。
例-3:特定の要素を削除する
次のコードを使用してC ++ファイルを作成し、erase()関数を使用してベクターの特定の要素を削除します。 7つの整数要素のベクトルがコードで宣言されています。次に、「for」ループを使用して、ベクトル要素を反復し、5で割り切れない要素をベクトルから削除しました。
//必要なライブラリを含める#含む
#含む
を使用して 名前空間時間;
int主要(()。
{{
//整数データのベクトルを宣言します
ベクター<int>>数字= {{ 78、フォーファイブ、67、25、98、75、52 };
費用 << '削除前のベクトルの値:NS';
にとって ((int const &私:数字)。 {{
費用 <<私<< '';
}
費用 <<endl;
// 5で割り切れない数をベクトルから削除します
にとって ((自動彼=数字。始める(()。;彼!=数字。終わり(()。;彼++)。
{{
//数値が5で割り切れるかどうかを確認します
もしも ((*彼% 5 != 0)。
{{
//イテレータに基づいて要素を削除します
数字。消去((彼-)。;
}
}
費用 << '削除後のベクトルの値:NS';
にとって ((int const &私:数字)。 {{
費用 <<私<< '';
}
費用 <<endl;
戻る 0;
}
出力:
上記のコードを実行すると、次の出力が表示されます。出力は、ベクトルに5で割り切れる要素のみが含まれ、他の要素が削除されたことを示しています。
結論:
このチュートリアルでは、ベクトル要素を削除するためのerase()関数のさまざまな使用法が示されています。 C ++には、ベクトルから要素を削除する他の多くの関数があり、それらの関数は一度に1つの要素を削除できます。ただし、ベクトルerase()関数を使用すると、ベクトルの任意の位置から単一要素と複数要素の両方を削除できます。