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

C ++ STLのlist_remove()およびlist remove_if()


STLのC++で機能リストremove()およびlist remove_if()関数を表示するタスクが与えられています。

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

リストは、任意の場所で一定時間の挿入と削除を順番に実行できるコンテナーです。 Listは、二重にリンクされたリストとして実装されます。リストは、非連続的なメモリ割り当てを許可します。 Listは、配列、ベクトル、および両端キューよりも、コンテナー内の任意の位置で要素の挿入抽出と移動をより適切に実行します。 Listでは、要素への直接アクセスは遅く、listはforward_listに似ていますが、転送リストオブジェクトは単一のリンクリストであり、繰り返し転送することしかできません。

remove()とは何ですか?

この関数は、関数にパラメーターで渡された指定された値を削除するために使用されます。

構文

listname.remove(val);

パラメータ

val −削除する値を定義します。

Input List: 1 2 3 3 4 5
Output New List: 1 2 4 5
In this List element 3 is removed.

Input List: 5 6 7 8 8 8 9
Output New List: 5 7 8 8 8 9
In this list element 6 in removed

アプローチに従うことができます

  • まず、リストを宣言します。

  • 次に、リストを印刷します。

  • 次に、remove()関数を定義します。

上記のアプローチを使用することで、指定された要素を削除できます。

// C++ code to demonstrate the working of list remove( ) function in STL
#include<iostream.h>
#include<list.h>
Using namespace std;
int main ( ){
   List<int> list = { 21, 24, 28, 26, 27, 25 };
   // print the list
   cout<< " list: ";
   for( auto x = list.begin( ); x != list.end( ); ++x)
      cout<< *x << " ";
   // defining remove( ) function
   list.remove(27);
   cout<< " New List:”;
   for( x = list.begin( ); x != list.end( ); ++x)
      cout<<' " " << *x;
   return 0;
}
>

出力

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

Input - List: 21 24 28 26 27 25
Output - New List: 21 24 28 26 25
Input – List: 45 46 47 48 49 50
Output – New List: 45 46 48 49 50

remove_if()関数とは何ですか?

この関数は、trueを返す値を削除して述語にするか、パラメーターとして渡された条件に対してtrueを返すために使用されます。

構文

listname.remove_if(predicate)

パラメータ

述語 −条件がパラメータとして渡されることを定義します。

Input – List: 5 6 7 8 9 10
Output – New List: 5 7 9
In this list we remove all the even elements.

Input – List:5 10 15 20 25 30
Output – New List: 5 15 25
In this List we remove all the elements which is divisible by 10.

アプローチに従うことができます

  • まず、述語関数を宣言します。

  • 次に、リストを宣言します。

  • 次に、リストを印刷します。

  • 次に、remove_if()関数を宣言します。

上記のアプローチを使用することにより、任意の条件で要素を削除できます。 remove_if()関数を宣言している間、述語をパラメーターとして渡します。

// C++ code to demonstrate the working of list remove_if( ) function in STL
#include<iostream.h>
#include<list.h>
Using namespace std;
Bool div3( const int& val){
   return( val % 3) == 0);
}
int main( ){
   List<int> list = { 2, 3, 4, 15, 9, 7, 21, 24, 13 };
   cout<< " List: ";
   for( auto x = list.begin( ); x != list.end( ); ++x)
      cout<< *x << " ";
   // declaring remove_if( ) function
   list.remove_if(div3);
   cout<< " New List:”;
   for( x= list.begin( ); x != end( ); ++x)
      cout<< " " << *x;
   return 0;
}

出力

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

Input – List: 2 3 4 15 9 7 21 24 13
Output – New List: 2 4 7 13

  1. C ++ STLのcrbegin()およびcrend()関数を一覧表示します

    与えられたのは、C ++でのリストcrbegin()およびcrend()関数の動作を示すタスクです。 list ::crbegin()およびlist ::crend()関数は、C++標準テンプレートライブラリの一部です。 これらの関数を呼び出すには、ヘッダーファイルをインクルードする必要があります。 list ::crbegin() この関数は、リストの逆の開始となるリストの終了要素を指す定数イテレータを返します。リストのバックトラックには使用できますが、リストの値を変更することはできません。つまり、crbegin()関数は反復にのみ使用できます。 構文 List_Name.c

  2. C ++ STLのcbegin()およびcend()関数を一覧表示します

    与えられたのは、C++でのlist::cbegin()およびlist::cend関数の動作を示すタスクです。 list ::cbegin()およびlist ::cend()関数は、C++標準テンプレートライブラリの一部です。 これらの関数を呼び出すには、ヘッダーファイルをインクルードする必要があります。 list ::cbegin() この関数は、リストの最初の要素を指す定数イテレータを返します。リストをトラバースするために使用できますが、リスト内の値を変更することはできません。つまり、cbegin()関数は反復にのみ使用できます。 構文 List_Name.cbegin();