algo — C++23 日本語リファレンス GitHub

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) 先頭要素を指すイテレータを返す

end

// (1)
const auto end() const;

// (2)
auto end();

(1)、(2) 終端を指すイテレータを返す

contains

// (1)
bool contains(const T &x) const;

// (2)
bool contains(T &&x) const;

(1)、(2) x が集合に含まれていれば true を返す

flip

// (1)
bool flip(const T &x);

// (2)
bool flip(T &&x);

(1)、(2) x があれば削除し、なければ挿入する。操作後に含まれていれば true を返す