flip_set
クラス · 要素の有無を反転できる集合
template <class T>
struct flip_set;
概要
要素の有無を反転できる集合
テンプレートパラメータ
| 名前 | 説明 |
|---|---|
T |
要素型。std::set のキーとして比較可能であること。 |
構築・破棄
| 名前 | 説明 | 計算量 |
|---|---|---|
(constructor) |
空の集合を構築する | $O(1)$ |
メンバ関数
| 名前 | 説明 | 計算量 |
|---|---|---|
begin |
先頭要素を指すイテレータを返す | $O(1)$ |
end |
終端を指すイテレータを返す | $O(1)$ |
empty |
集合が空なら true を返す | $O(1)$ |
size |
要素数を返す | $O(1)$ |
contains |
x が集合に含まれていれば true を返す | $O(\log n)$ |
flip |
x があれば削除し、なければ挿入する。操作後に含まれていれば true を返す | $O(\log n)$ |
メンバの詳細
begin
// (1)
const auto begin() const;
// (2)
auto begin();
(1)、(2) 先頭要素を指すイテレータを返す
- 計算量: $O(1)$
end
// (1)
const auto end() const;
// (2)
auto end();
(1)、(2) 終端を指すイテレータを返す
- 計算量: $O(1)$
contains
// (1)
bool contains(const T &x) const;
// (2)
bool contains(T &&x) const;
(1)、(2) x が集合に含まれていれば true を返す
- パラメータ
x: 検索する要素 - 計算量: $O(\log n)$
flip
// (1)
bool flip(const T &x);
// (2)
bool flip(T &&x);
(1)、(2) x があれば削除し、なければ挿入する。操作後に含まれていれば true を返す
- パラメータ
x: 反転する要素 - 計算量: $O(\log n)$