list::unique
Usuwa sąsiednie zduplikowane elementy lub sąsiadujące elementy, które spełniają niektóre inne predykatu dwuelementowego z listy.
void unique( );
template<class BinaryPredicate>
void unique(
BinaryPredicate _Pred
);
Parametry
- _Pred
Predykatu dwuelementowego używane do porównywania kolejne elementy.
Uwagi
Funkcja ta zakłada, że lista jest sortowana, tak, aby wszystkie zduplikowane elementy są sąsiadujące.Duplikatów, które nie są sąsiadujące, nie zostaną usunięte.
Pierwsza funkcja Członkowskie Usuwa każdy element, który porównuje równa jej poprzedni element.
Druga funkcja Członkowskie Usuwa każdy element, który spełnia funkcję predykatu _Pred w porównaniu z jego poprzedni element.Można użyć dowolnego obiekty binarne funkcja zadeklarowana w **<functional>**nagłówka do _Pred argumentu lub można 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: <list>
Obszar nazw: std