8.25.2011

C++: Remove duplicates from vector

C++: 重複したvector要素の削除

以下のテンプレート関数を使えば、ソート~ユニーク~削除の一連の操作を簡単にできる。

   1: template <typename T>
   2: void UNIQ(std::vector<T> &v) {
   3:   std::sort(v.begin(), v.end());
   4:   v.erase(std::unique(v.begin(), v.end()), v.end());
   5: }

ただし、単に重複を考慮しない集合を扱うのであれば、std::set を利用したほうがいい。

参考:
http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from-vector.html

0 件のコメント:

コメントを投稿