Partager via


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

Voir aussi

Référence

list Class

Modèles Standard