list::unique
Supprime les éléments en double adjacents ou les éléments adjacents qui satisfont un autre attribut binaire d'une liste.
void unique( );
template<class BinaryPredicate>
void unique(
BinaryPredicate _Pred
);
Paramètres
- _Pred
L'attribut binaire utilisé pour comparer des éléments consécutifs.
Notes
Cette fonction suppose que la liste est triée, afin que tous les éléments en double sont adjacents.Reproduit qui ne sont pas adjacent ne sera pas supprimé.
La première fonction membre supprime chaque élément qui compare une valeur égale à l'élément précédent.
La deuxième fonction membre supprime chaque élément qui satisfait la fonction _Pred d'attribut en comparaison avec l'élément précédent.Vous pouvez utiliser les objets binaires l'un des de fonction déclarés dans l'en-tête d' **<functional>**pour l'argument _Pred ou vous pouvez créer vos propres.
Exemple
// 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;
}
Configuration requise
en-tête : <list>
l'espace de noms : DST