Freigeben über


list::unique

Entfernt doppelte benachbarte Elemente oder benachbarte Elemente, die ein anderes binäres Prädikat aus einer Liste erfüllen.

void unique( );
template<class BinaryPredicate>
   void unique(
      BinaryPredicate _Pred
   );

Parameter

  • _Pred
    Das binäre Prädikat verwendet, um aufeinander folgende Elemente zu vergleichen.

Hinweise

Diese Funktion wird davon ausgegangen, dass die Liste sortiert wird, sodass alle doppelten Elemente benachbart sind.Duplikate, die nicht benachbart sind, werden nicht gelöscht.

Die erste Memberfunktion entfernt jedes Element, das dem numerischen Im vorangehenden Element verglichen werden.

Die zweite Memberfunktion entfernt jedes Element, das die Prädikatfunktion _Pred im Vergleich zu seinem vorherigen Element erfüllt.Sie können jede der binären Funktionsobjekte verwenden, die im <functional> Header für das _Pred Argument deklariert werden, oder Sie können eigene erstellen.

Beispiel

// list_unique.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter, c2_Iter,c3_Iter;
   not_equal_to<int> mypred;
   
   c1.push_back( -10 );
   c1.push_back( 10 );
   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 20 );
   c1.push_back( -10 );

   cout << "The initial list is c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;
   
   list <int> c2 = c1;
   c2.unique( );
   cout << "After removing successive duplicate elements, c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;

   list <int> c3 = c2;
   c3.unique( mypred );
   cout << "After removing successive unequal elements, c3 =";
   for ( c3_Iter = c3.begin( ); c3_Iter != c3.end( ); c3_Iter++ )
      cout << " " << *c3_Iter;
   cout << endl;
}
  

Anforderungen

Header: <list>

Namespace: std

Siehe auch

Referenz

list Class

Standardvorlagenbibliothek