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

C ++ STLのerase()関数を一覧表示します


この記事では、C++でのlist::Erase()関数の動作、構文、および例について説明します。

STLのリストとは何ですか?

リストは、任意の場所で一定時間の挿入と削除を順番に実行できるデータ構造です。リストは、二重にリンクされたリストとして実装されます。リストを使用すると、連続しないメモリ割り当てが可能になります。リストは、配列、ベクトル、および両端キューよりも、コンテナー内の任意の位置で要素の挿入抽出と移動を実行します。リストでは、要素への直接アクセスは遅く、リストはforward_listに似ていますが、フォワードリストオブジェクトは単一のリンクリストであり、フォワードでのみ繰り返すことができます。

list ::Erase()とは何ですか?

list ::Erase()は、ヘッダーファイルで宣言されているC++STLの組み込み関数です。 Erase()は、リストコンテナから要素を削除するために使用されます。リストコンテナから単一の要素または要素の範囲を消去できます。削除/消去する要素の数だけリストコンテナのサイズを縮小します

構文

list_container.erase(positon);
list_container.erase(start_position, end_position);

この関数は、1つまたは2つのパラメーターを受け入れることができます-

パラメータ

  • position-これは、要素を削除する単一の位置です。

  • start_position、end_position-これは、要素を削除する範囲を定義します。

戻り値

この関数は、削除された最後の要素の隣を指しているイテレータを返します。

以下のコードでは、STLに存在するerase()関数を使用して要素を消去する必要があります。そのために、begin()関数を使用して最初の要素を指すイテレーターを使用して最初の要素をフェッチし、その後、イテレーターを消去します。リストの最初の要素が含まれています。

#include <bits/stdc++.h>
using namespace std;
int main(){
   //Create a list
   list<int> myList;
   myList.push_back(2);
   myList.push_back(4);
   myList.push_back(6);
   myList.push_back(8);
   myList.push_back(10);
   cout<<"List before deleting elements: ";
   for (auto i = myList.begin(); i!= myList.end(); i++){
      cout << *i<< " ";
   }
   //iterator that will point to the first element
   list<int>::iterator i = myList.begin();
   myList.erase(i);
   //list after deleting the element
   cout << "\nList after deleting elements: ";
   for (auto i = myList.begin(); i!= myList.end(); i++){
      cout << *i << " ";
   }
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます

List before deleting elements: 2 4 6 8 10
List after deleting elements: 4 6 8 10

以下のコードでは、STLに存在するerase()関数を使用して要素を消去する必要があります。そのために、begin()関数を使用して最初の要素を指すイテレーター(イテレーター1)を使用して最初の要素をフェッチし、別のiterator(iterator 2)は2番目の要素を指し、その後、イテレータ1とイテレータ2の間の範囲からイテレータを消去し、結果を表示します。

#include <bits/stdc++.h>
using namespace std;
int main(){
   //Create a list
   list<int> myList;
   myList.push_back(2);
   myList.push_back(4);
   myList.push_back(6);
   myList.push_back(8);
   myList.push_back(10);
   cout<<"List before deleting elements: ";
   for (auto i = myList.begin(); i!= myList.end(); i++){
      cout << *i << " ";
   }
   //iterator that will point to the first element
   list<int>::iterator i_1, i_2;
   i_1 = myList.begin();
   i_2 = myList.begin();
   //advance() function will increment the position of iterator 2 by 3
   advance(i_2, 4);
   //now it will delete the elements from the range 0 - 4
   myList.erase(i_1, i_2);
   //list after deleting the element
   cout<< "\nList after deleting elements: ";
   for (auto i = myList.begin(); i!= myList.end(); i++){
      cout << *i << " ";
   }
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます

List before deleting elements: 2 4 6 8 10
List after deleting elements: 10

  1. C++STLのリスト逆関数

    この記事では、C++でのlist::reverse()関数の動作、構文、および例について説明します。 STLのリストとは リストは、任意の場所で一定時間の挿入と削除を順番に実行できるデータ構造です。リストは、二重にリンクされたリストとして実装されます。リストを使用すると、連続しないメモリ割り当てが可能になります。リストは、配列、ベクトル、および両端キューよりも、コンテナー内の任意の位置で要素の挿入抽出と移動を実行します。リストでは、要素への直接アクセスは遅く、リストはforward_listに似ていますが、フォワードリストオブジェクトは単一のリンクリストであり、フォワードでのみ繰り返すことが

  2. C ++STLのlistback()関数

    与えられたのは、c++でのlistback()関数の動作を示すタスクです。 list ::back()関数は、C++標準テンプレートライブラリの一部です。リストの最後の要素を表示するために使用されます。 この関数を呼び出す前に、ヘッダーファイルをインクルードする必要があります。 構文 List_Name.back(); パラメータ この関数はパラメータを受け入れません。 戻り値 この関数は、リストの最後の要素の値を返します。 例 Input: Lt.assign(3,10) Lt.back() Output: 10 説明 −次の例は、back()関数を使用してリストの最後の値を見つけ