最終更新日時(UTC):
が更新

履歴 編集

function
<forward_list>

std::forward_list::unique(C++11)

void unique();

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

概要

コンテナから重複した要素を削除する

要件

コンテナがソート済みであること。ソート済みでない場合、この関数の動作は未規定。

効果

範囲[first + 1, last)の全てのイテレータiについて、

  • *i == *(i - 1) : 比較関数を指定しないバージョン
  • pred(*i, *(i - 1)) : 比較関数を指定するバージョン

trueとなる要素を削除する。
削除された要素に対するイテレータおよび参照は無効となる。

戻り値

なし

例外

比較関数を指定しないバージョン:
Tの等値比較が例外を投げない場合、この関数は例外を投げない

比較関数を指定するバージョン:
predが例外を投げない場合、この関数は例外を投げない

計算量

ちょうど(last - first) - 1回の等値比較、もしくは述語の適用を行う。

#include <iostream>
#include <forward_list>

int main()
{
  std::forward_list<int> ls = {3, 1, 4, 1};

  ls.sort();
  ls.unique();

  for (int x : ls) {
    std::cout << x << std::endl;
  }
}

出力

1
3
4

バージョン

言語

  • C++11

処理系

参照