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