#pragma once #include struct union_find_disjoint_set { union_find_disjoint_set() noexcept = default; union_find_disjoint_set(uint32_t size) noexcept; void init(uint32_t size) noexcept; int32_t find(uint32_t x) noexcept; int32_t merge(uint32_t x, uint32_t y) noexcept; void extract_disjoint_sets(stl_vector_mp>& disjoint_sets, stl_vector_mp& index_map) noexcept; stl_vector_mp parent{}; };