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