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

C++STLのforward_list::unique()


C++でのforward_list::unique()関数の動作を示すタスクが与えられています。

フォワードリストは、シーケンス内の任意の場所で一定時間の挿入および消去操作を可能にするシーケンスコンテナです。フォワードリストは、単一リンクリストとして実装されます。順序は、シーケンス内の次の要素へのリンクの各要素への関連付けによって維持されます。

forward_list ::unique()は、c ++標準ライブラリ関数の関数であり、転送リストからすべての重複要素を削除するために使用されます。要素がすぐにその要素と等しい場合にのみ、要素がforward_listコンテナから削除されることに注意してください。したがって、この関数はソートされたリストに特に役立ちます。

構文

Forwardlist_name.unique(binarypredicate name)

バイナリ述語の構文

ブール名(データ型a、データ型b)

パラメータ −この関数は、要素が等しいものとして扱われる必要がある場合にtrueを返すバイナリ述語である単一のパラメーターを受け入れます。

Output – List : 4, 4, 17, 32, 45, 56, 56, 45, 32, 4, 17, 17
   After Unique operation output is
      Unique list : 4, 17, 32, 45, 56
Output – List : 15.2, 74.0, 3.14, 15.2, 69.5, 74.0, 3.14, 18.5, 3.99
   After Unique operation output is
      Unique list : 3.14, 3.99, 15.2, 18.5, 69.5, 74.0

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

  • まず、バイナリ述語関数を作成します。

  • 次に、転送リストを初期化します。

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

  • 次に、独自の操作の後に転送リストを印刷します。

上記のアプローチを使用することで、転送リストから重複する要素を削除できます。

// C++ code to demonstrate the working of forward_list::unique( )
#include<iostream.h>
#include<forward_list.h>
Using namespace std;
// function for binary predicate
bool cmp(int a, int b){
   return (abs(a) == abs(b))
}
int main(){
   // initializing the forward list
   forward_list<int> List = { 2, 4, 6, 3, 5, 3, 4, 4, 9, 1, 6, 6, 2, 2, 9 }
   cout<< " Elements of List:";
   for( auto x = List.start(); x != List.end(); ++x )
      cout<< *x << " ";
   // defining of function that performs the Unique operation
   List.unique();
   cout<< “ Unique List :”;
   for(auto x = List.start(); x != List.end(); ++x)
      cout<< *x << " ";
   return 0;
}

出力

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

OUTPUT – List : 2, 4, 6, 3, 5, 4, 4, 9, 1, 6, 6, 2, 2, 9
   Unique List : 1, 2, 3, 4, 5, 6, 9
OUTPUT – List : 15.2, 74.0, 3.14, 15.2, 69.5, 74.0, 3.14, 18.5, 3.99
   Unique List : 3.14, 3.99, 15.2, 18.5, 69.5, 74.0

  1. C ++STLの転送リスト::cend()

    C++でのforward_list::cend関数の動作を示すタスクが与えられています。 forward_listは、次の要素および前の要素とのリンクを維持する通常のリストとは異なり、次の要素とのリンクのみを維持します。これにより、両方向の反復が可能になります。ただし、forward_listは順方向にのみ反復できます。 forward_list ::cend()関数は、C++標準テンプレートライブラリの一部です。リストの最後の要素を取得するために使用されます。 この関数を呼び出すには、ヘッダーファイルをインクルードする必要があります。 構文 Forward_List_Name.cend

  2. C ++STLのforward_listcbegin()

    C++でのforward_list::cbegin()関数の動作を示すタスクが与えられています。 forward_listは、次の要素および前の要素とのリンクを維持する通常のリストとは異なり、次の要素とのリンクのみを維持します。これにより、両方向の反復が可能になります。ただし、forward_listは順方向にのみ反復できます。 forward_list ::cbegin()関数は、C++標準テンプレートライブラリの一部です。リストの最初の要素を取得するために使用されます。 関数を呼び出すには、ヘッダーファイルをインクルードする必要があります。 構文 Forward_List_Name.