list::unique
Usuwa sąsiadujące zduplikowane elementy i sąsiadujące elementy, które spełniają inne binarne predykat z listy.
void unique( ); template<class BinaryPredicate> void unique( BinaryPredicate _Pred );
Parametry
- _Pred
Predykat binary służy do porównywania kolejnych elementów.
Uwagi
Ta funkcja obowiązuje założenie, że lista jest sortowana, tak, aby wszystkie zduplikowane elementy są sąsiadujące.Zduplikowane nazwy, które nie są sąsiadujące nie zostaną usunięte.
Pierwsza funkcja elementu członkowskiego Usuwa każdy element, który porównuje taki sam, jak jego poprzedni element.
Druga funkcja elementu członkowskiego Usuwa każdy element, który spełnia predykatu funkcji _Pred w porównaniu z jego poprzedni element.Możesz używać obiekty binarne funkcję zadeklarowane w **<functional>**nagłówka do _Pred argumentu lub tworzyć własne.
Przykład
// 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;
}
Wymagania
Nagłówek: < listy >
Przestrzeń nazw: std