Compartir a través de


list::unique

Quita los elementos duplicados adyacentes o los elementos adyacentes que satisfacen algún otro predicado binario de una lista.

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

Parámetros

  • _Pred
    el predicado binario utilizado para comparar elementos sucesivos.

Comentarios

Esta función se supone que la lista está ordenada, de modo que todos los elementos duplicados se adyacentes.Los duplicados que no adyacentes no se eliminarán.

La primera función miembro quita cada elemento que comparar el igual al elemento anterior.

La segunda función miembro quita cada elemento que satisface la función _Pred de predicado en comparación con el elemento anterior.Puede utilizar los objetos binarios cualquiera de la función declarados en el encabezado de **<functional>**para el argumento _Pred o puede crear dispone.

Ejemplo

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

Requisitos

encabezado: <lista>

espacio de nombres: std

Vea también

Referencia

list Class

Biblioteca de plantillas estándar