Sdílet prostřednictvím


list::unique

Odebere sousedící duplicitní prvky nebo sousedící prvky, které splňují některé jiné binárního predikátu ze seznamu.

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

Parametry

  • _Pred
    Binárního predikátu používaný pro srovnání po sobě následujících prvků.

Poznámky

Tato funkce předpokládá, že je seznam seřazen, tak, aby všechny duplicitní prvky jsou sousedící.Duplicitní hodnoty, které nejsou sousedních nebudou odstraněny.

První členské funkce odebere každého prvku, který porovnává rovná jeho předchozí prvek.

Druhá funkce člena odebere každého prvku, který plní funkci predikátu _Pred ve srovnání s jeho předchozí prvek.Můžete použít libovolné objekty binární funkce deklarované v **<functional>**záhlaví pro argument _Pred, nebo můžete vytvořit vlastní.

Příklad

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

Požadavky

Záhlaví: <list>

Obor názvů: std

Viz také

Referenční dokumentace

list Class

Standardní šablona knihovny