unique - 同一の連続要素のすべてのシーケンスを線形時間で 1 つに圧縮する関数。
引数として、圧縮を適用する必要がある配列の境界が渡されます。
反復子は、配列の新しい末尾 (両端を含まない) に返されます。新しい end の後で古い end の前にある要素には、未定義の値があるため注意が必要です。
詳しくはドキュメントをご覧ください。
ベクトルでこの関数を使用している場合は、返された結果を使用してサイズを変更すると便利です (詳細は後述)。
例:
ベクトル a = { 3, 3, 3, 2, 3, 3, 1, 1, 4, 5, 5 };
ユニーク (a.begin(), a.end());
// a = [3, 2, 3, 1, 4, 5, ?, ?, ?, ?, ?]
// unique 関数を使用すると便利です
// 座標圧縮の補助配列
= { 235, 10, 41, 10, 41, 41, 235, 500, 500};
sort(a.begin(), a.end());
// a = [10, 10, 41, 41, 41, 235, 235, 500, 500]
a.resize(unique(a.begin(), a.end()) - a.begin());
// a = [10, 41, 235, 500]