C++のset
C++の set
についての備忘録。
set
とは
- ユニークな要素の値:互いに等しい二つの要素が
set
に格納されることは無い。複数の等しい値を許す同様の連想コンテナはmultiset
を参照のこと。- 要素の値はキーそのものである。キーを使って要素にアクセスするがキーとは異なる値へマップする同様の連想コンテナは
map
を参照のこと。- 要素は常に狭義の弱順序に従う。
重複した値が set
には存在しない。小さい順にソートされる。
コード
#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)