コンテンツにスキップ

C++のset

C++の set についての備忘録。

set とは

  1. ユニークな要素の値:互いに等しい二つの要素が set に格納されることは無い。複数の等しい値を許す同様の連想コンテナは multiset を参照のこと。
  2. 要素の値はキーそのものである。キーを使って要素にアクセスするがキーとは異なる値へマップする同様の連想コンテナは map を参照のこと。
  3. 要素は常に狭義の弱順序に従う。

    c++ 日本語リファレンス

重複した値が set には存在しない。小さい順にソートされる。

コード

C++
#include <iostream>
#include <set>
using namespace std;

int main() {
    set<int> a;

    // 新しい値を追加する
    a.insert(4);
    a.insert(8);
    a.insert(-9);
    a.insert(8); // 挿入されていない
    // 小さい順にソートされるので、3番目に挿入した -9 を出力する
    cout << *a.begin() << endl;
    // 最後の 8 は挿入されていないので、3 を出力する
    cout << a.size() << endl;

    if (a.count(4)) // 式判定は 1 を返すので出力
        cout << "yes 4";
    if (a.count(100)) // 式判定は 0 を返すので出力しない
        cout << "yes 100";

    return 0;
}

参考ページ

c++日本語リファレンス (https://cpprefjp.github.io/reference/set/set.html)

手を動かしてさくさく理解するC++ 順序付集合 std::set 入門 (http://vivi.dyndns.org/tech/cpp/set.html)