理系の気ままメモ

自分の興味のあることや発見したことや思ったことなどを自由気ままに書くブログ。

競技プログラミングに使えそうなC++のSTLをまとめる

Pairについて

今度書きます。

std::Setについて

概要

setは順序付き集合。同じ値は保持しない。データの追加、削除、検索はO(logN)。重複はなく、キーに対して自動でソートされてデータが保持される。

準備

setを使用するためには

#include <set>

を記述する必要がある。

#include <bits/stdc++.h>
using namespace std;

int main() {
    set<int> s;
    s.insert(2);    //データの追加はO(logN)
    s.insert(10);
    s.insert(6);
    s.insert(100);

    s.erase(100);   //データの消去はO(logN)

    auto itr = s.find(10); //値を検索。値が獣所付き集合に含まれないときはend()を返す。O(logN)
    cout << "10:" << s.count(10) << endl; //値の個数を返す。setは重複がないので1又は0のみ。O(logN)
    cout << "100:" << s.count(100) << endl;
    cout << "size:" << s.size() << endl; //集合に含まれる要素の個数を返す。
}

参考サイト
C++ 順序付集合 std::set 入門
set - C++ Reference