Template Class set

Nested Relationships

Nested Types

Class Documentation

template<typename E, typename Cmp = std::less<E>>
class set

Public Types

using container_type = bitset<E, index_type>
using key_type = E
using value_type = E
using size_type = std::size_t
using difference_type = std::ptrdiff_t
using key_compare = Cmp
using value_compare = Cmp
using reference = value_type&
using const_reference = const value_type&
using pointer = value_type*
using const_pointer = const value_type*
using iterator = detail::FilteredIterator<const set*, const E*, Getter, Predicate>
using const_iterator = detail::FilteredIterator<const set*, const E*, Getter, Predicate>
using reverse_iterator = std::reverse_iterator<iterator>
using const_reverse_iterator = std::reverse_iterator<const_iterator>

Public Functions

constexpr set() noexcept = default
template<typename InputIt>
inline constexpr set(InputIt first, InputIt last)
inline constexpr set(std::initializer_list<E> ilist)
template<typename V, std::enable_if_t<std::is_same_v<V, E> && magic_enum::detail::subtype_v<V> == magic_enum::detail::enum_subtype::flags, int> = 0>
inline explicit constexpr set(V starter)
constexpr set(const set&) noexcept = default
constexpr set(set&&) noexcept = default
constexpr set &operator=(const set&) noexcept = default
constexpr set &operator=(set&&) noexcept = default
inline constexpr set &operator=(std::initializer_list<E> ilist)
inline constexpr const_iterator begin() const noexcept
inline constexpr const_iterator end() const noexcept
inline constexpr const_iterator cbegin() const noexcept
inline constexpr const_iterator cend() const noexcept
inline constexpr const_reverse_iterator rbegin() const noexcept
inline constexpr const_reverse_iterator rend() const noexcept
inline constexpr const_reverse_iterator crbegin() const noexcept
inline constexpr const_reverse_iterator crend() const noexcept
inline constexpr bool empty() const noexcept
inline constexpr size_type size() const noexcept
inline constexpr size_type max_size() const noexcept
inline constexpr void clear() noexcept
inline constexpr std::pair<iterator, bool> insert(const value_type &value) noexcept
inline constexpr std::pair<iterator, bool> insert(value_type &&value) noexcept
inline constexpr iterator insert(const_iterator, const value_type &value) noexcept
inline constexpr iterator insert(const_iterator hint, value_type &&value) noexcept
template<typename InputIt>
inline constexpr void insert(InputIt first, InputIt last) noexcept
inline constexpr void insert(std::initializer_list<value_type> ilist) noexcept
template<typename ...Args>
inline constexpr std::pair<iterator, bool> emplace(Args&&... args) noexcept
template<typename ...Args>
inline constexpr iterator emplace_hint(const_iterator, Args&&... args) noexcept
inline constexpr iterator erase(const_iterator pos) noexcept
inline constexpr iterator erase(const_iterator first, const_iterator last) noexcept
inline constexpr size_type erase(const key_type &key) noexcept
template<typename K, typename KC = key_compare>
inline constexpr std::enable_if_t<detail::is_transparent_v<KC>, size_type> erase(K &&x) noexcept
inline void swap(set &other) noexcept
inline constexpr size_type count(const key_type &key) const noexcept
template<typename K, typename KC = key_compare>
inline constexpr std::enable_if_t<detail::is_transparent_v<KC>, size_type> count(const K &x) const
inline constexpr const_iterator find(const key_type &key) const noexcept
template<typename K, typename KC = key_compare>
inline constexpr std::enable_if_t<detail::is_transparent_v<KC>, const_iterator> find(const K &x) const
inline constexpr bool contains(const key_type &key) const noexcept
template<typename K, typename KC = key_compare>
inline constexpr std::enable_if_t<detail::is_transparent_v<KC>, bool> contains(const K &x) const noexcept
inline constexpr std::pair<const_iterator, const_iterator> equal_range(const key_type &key) const noexcept
template<typename K, typename KC = key_compare>
inline constexpr std::enable_if_t<detail::is_transparent_v<KC>, std::pair<const_iterator, const_iterator>> equal_range(const K &x) const noexcept
inline constexpr const_iterator lower_bound(const key_type &key) const noexcept
template<typename K, typename KC = key_compare>
inline constexpr std::enable_if_t<detail::is_transparent_v<KC>, const_iterator> lower_bound(const K &x) const noexcept
inline constexpr const_iterator upper_bound(const key_type &key) const noexcept
template<typename K, typename KC = key_compare>
inline constexpr std::enable_if_t<detail::is_transparent_v<KC>, const_iterator> upper_bound(const K &x) const noexcept
inline constexpr key_compare key_comp() const
inline constexpr value_compare value_comp() const
template<typename Pred>
inline size_type erase_if(Pred pred)

Friends

inline friend constexpr friend bool operator== (const set &lhs, const set &rhs) noexcept
inline friend constexpr friend bool operator!= (const set &lhs, const set &rhs) noexcept
inline friend constexpr friend bool operator< (const set &lhs, const set &rhs) noexcept
inline friend constexpr friend bool operator<= (const set &lhs, const set &rhs) noexcept
inline friend constexpr friend bool operator> (const set &lhs, const set &rhs) noexcept
inline friend constexpr friend bool operator>= (const set &lhs, const set &rhs) noexcept