list::unique
一覧から他のバイナリ述語を満たす削除の隣接する重複する要素または隣接する要素。
void unique( );
template<class BinaryPredicate>
void unique(
BinaryPredicate _Pred
);
パラメーター
- _Pred
一連の要素を比較するために使用できるバイナリの述語。
解説
この関数は、重複するすべての要素が隣接するように、リストが並べ替えられていると仮定します。隣接していない複製は削除されません。
一つ目のメンバー関数は、直前の要素に等しいを比較するすべての要素を削除します。
2 番目のメンバー関数は、直前の要素と比較すると _Pred 述語関数を満たすすべての要素を削除します。_Pred 引数に **<functional>**のヘッダーで宣言されたバイナリの関数オブジェクト使用することも、独自に作成することもできます。
使用例
// 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;
}
必要条件
ヘッダー: <list>
名前空間: std