disjoint_set

template<typename Item, typename Partitioner = detail::old_hash_partitioner<Item>>
class disjoint_set

Public Types

using self_type = disjoint_set<Item, Partitioner>
using value_type = Item
using size_type = size_t
using ygm_for_all_types = std::tuple<Item, Item>
using container_type = ygm::container::disjoint_set_tag
using impl_type = detail::disjoint_set_impl<Item, Partitioner>

Public Functions

disjoint_set() = delete
inline disjoint_set(ygm::comm &comm, const size_t cache_size = 8192)
template<typename Visitor, typename ...VisitorArgs>
inline void async_visit(const value_type &item, Visitor visitor, const VisitorArgs&... args)
inline void async_union(const value_type &a, const value_type &b)
template<typename Function, typename ...FunctionArgs>
inline void async_union_and_execute(const value_type &a, const value_type &b, Function fn, const FunctionArgs&... args)
inline void all_compress()
template<typename Function>
inline void for_all(Function fn)
inline std::map<value_type, value_type> all_find(const std::vector<value_type> &items)
inline void clear()
inline size_type size()
inline size_type num_sets()
inline ygm::ygm_ptr<impl_type> get_ygm_ptr() const
inline ygm::comm &comm()