「std::list::unique」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「std::list::unique とは、std::list内の重複を削除します。Unixのコマンドで言えば、uniqコマンドの処理を行います。ただ、uniqu...」)
 
(相違点なし)

2014年7月12日 (土) 20:35時点における最新版

std::list::unique とは、std::list内の重複を削除します。Unixのコマンドで言えば、uniqコマンドの処理を行います。ただ、uniqueを呼び出すと、uniqコマンドを実行したことになります。sort -u と同じようなことを望むなら、もしくは、sort|uniq を望むなら、std::list::sortをしてからstd::list::uniqueをします。

読み方

std::list::unique
えすてぃーでぃー りすと ゆにーく

概要

std::list::uniqueは、比較関数を指定することができます。

整数のリストをソートする例です。

// uniq を実行するイメージ
list<int> list1 = { 1,1,1,1,1,2,3,1,2,3,2,8,9 };
list1.unique();
// sort -u (sort|uniq) 的なことを望むなら
list<int> list1 = { 1,1,1,1,1,2,3,1,2,3,2,8,9 };
list1.sort();
list1.unique();

整数リストをユニーク処理する例 list_unique1.cpp

ソースコード list_unique1.cpp

/*
 * list1.cpp
 * Copyright (C) 2014 kaoru <kaoru@bsd>
 */
 
#include <iostream>
#include <list>
using namespace std;
 
void
print(list<int> &list1)
{
        for (auto x: list1) {
                cout << x << " ";
        }
        cout << endl;
}
 
int
main(int argc, char const* argv[])
{
        list<int> list1 = { 1,1,1,1,1,2,3,1,2,3,2,8,9 };
 
        list1.unique();
        print(list1);
        list1.sort();
        list1.unique();
        print(list1);
 
        return 0;
}

コンパイル

g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \
-Wl,-rpath=/usr/local/lib/gcc49  list_unique1.cpp -o list_unique1

実行例

% ./list_unique1
1 2 3 1 2 3 2 8 9
1 2 3 8 9

関連項目