Condividi tramite


list::unique

Elimina elementi duplicati adiacenti o gli elementi adiacenti che soddisfano un altro predicato binario da un elenco.

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

Parametri

  • _Pred
    Il predicato binario utilizzato per confrontare gli elementi successivi.

Note

Questa funzione presuppone che l'elenco è ordinato, in modo che tutti gli elementi duplicati adiacenti.E che non sia adiacente non verrà eliminato.

La prima funzione membro eliminato ogni elemento in cui si confronta uguale all'elemento precedente.

La seconda funzione membro eliminato ciascun elemento che soddisfa la funzione predicativa _Pred in paragone all'elemento precedente.È possibile utilizzare qualsiasi oggetto funzione binari dichiarati nell'intestazione **<functional>**per l'argomento _Pred o è possibile creare.

Esempio

// 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;
}
  

Requisiti

intestazione: <list>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

list Class

Libreria di modelli standard