list::unique
Rimuove gli 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
Predicato binario usato per confrontare gli elementi successivi.
Note
Questa funzione presuppone che l'elenco sia ordinato, in modo che tutti gli elementi duplicati siano adiacenti. Gli elementi duplicati non adiacenti non verranno eliminati.
La prima funzione membro rimuove tutti gli elementi che risultano uguali all'elemento precedente.
La seconda funzione membro rimuove tutti gli elementi che soddisfano la funzione predicato _Pred quando vengono confrontati con l'elemento precedente. È possibile usare uno degli oggetti funzione binaria dichiarati nell'intestazione <functional> per l'argomento _Pred o è possibile crearne uno.
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: std