Sdílet prostřednictvím


list::unique

Odebere sousedící duplicitní elementy nebo sousedící prvky, které odpovídají některé binárního predikátu ze seznamu.

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

Parametry

  • _Pred
    Binární predikát používá k porovnání po sobě jdoucích elementy.

Poznámky

Tato funkce předpokládá, že je seznam seřazen, tak, aby všechny duplicitní elementy jsou vedle sebe.Duplicitní položky, které nejsou sousedícího nebudou odstraněny.

První funkce člena odebere každý element, který porovnává rovná jeho předchozí prvek.

Funkce second člena odebere každý element, který splňuje predikátu funkce _Pred ve srovnání s jeho předchozí prvek.Všechny objekty binární funkce deklarované v můžete používat **<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í: < seznamu >

Obor názvů: std

Viz také

Referenční dokumentace

list – třída

Standardní knihovna šablon