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>
35 has(
const std::set<T, Compare, Alloc>& s,
const T& e)
39 template <
typename T,
typename Compare,
typename Alloc>
40 std::set<std::set<T, Compare, Alloc>>
44 template <
typename T,
typename Compare,
typename Alloc>
46 print(
const std::set<T, Compare, Alloc>& set, std::ostream& o);
49 template <
typename Container>
50 bool subset(
const Container& set1,
const Container& set2)
bool subset(const Container &set1, const Container &set2) ATTRIBUTE_PURE
Whether set1 ⊆ 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.
ATTRIBUTE_PURE bool has(const boost::container::flat_set< Key, Compare, Allocator > &s, const Key &e)
Whether e is member of s.
std::ostream & print(const Aut &aut, std::ostream &out=std::cout, const std::string &fmt="default")
size_t operator()(const type &ss) const
Request the set implementation (bool weights).
void hash_combine(std::size_t &seed, const T &v)
set< T, Compare, Alloc > type