16 template <
typename T,
typename Compare,
typename Alloc>
17 struct hash<set<T, Compare, Alloc>>
19 using type = set<T, Compare, Alloc>;
23 for (
const auto& s: ss)
33 template <
typename T,
typename Compare,
typename Alloc>
34 std::set<T, Compare, Alloc>
36 const std::set<T, Compare, Alloc>& set2)
38 using set_t = std::set<T, Compare, Alloc>;
40 std::insert_iterator<set_t> i{res, begin(res)};
42 begin(set2), end(set2),
48 template <
typename T,
typename Compare,
typename Alloc>
50 has(
const std::set<T, Compare, Alloc>& s,
const T& e)
54 template <
typename T,
typename Compare,
typename Alloc>
55 std::set<T, Compare, Alloc>
57 const std::set<T, Compare, Alloc>& set2);
60 template <
typename T,
typename Compare,
typename Alloc>
61 std::set<std::set<T, Compare, Alloc>>
65 template <
typename T,
typename Compare,
typename Alloc>
66 std::set<T, Compare, Alloc>
67 get_union(
const std::set<T, Compare, Alloc>& set1,
68 const std::set<T, Compare, Alloc>& set2);
71 template <
typename T,
typename Compare,
typename Alloc>
73 print(
const std::set<T, Compare, Alloc>& set, std::ostream& o);
76 template <
typename Container>
77 bool subset(
const Container& set1,
const Container& set2)
std::set< std::set< T, Compare, Alloc > > intersection_closure(std::set< std::set< T, Compare, Alloc >> pset)
The set of all the intersections of the sets in pset.
std::set< T, Compare, Alloc > set_difference(const std::set< T, Compare, Alloc > &set1, const std::set< T, Compare, Alloc > &set2)
The set of members of set1 that are not members of set2.
bool subset(const Container &set1, const Container &set2) ATTRIBUTE_PURE
Whether set1 ⊆ set2.
size_t operator()(const type &ss) const
void hash_combine(std::size_t &seed, const T &v)
std::ostream & print(const Aut &aut, std::ostream &out, const std::string &format)
std::set< T, Compare, Alloc > get_union(const std::set< T, Compare, Alloc > &set1, const std::set< T, Compare, Alloc > &set2)
The union of two sets.
set< T, Compare, Alloc > type
ATTRIBUTE_PURE bool has(const std::deque< T, Allocator > &s, const T &e)
Whether e is member of s.
std::set< T, Compare, Alloc > intersection(const std::set< T, Compare, Alloc > &set1, const std::set< T, Compare, Alloc > &set2)
The intersection of two sets.