From 5d858da58a47bf1619f8dd901af6ed1b79d3cac3 Mon Sep 17 00:00:00 2001 From: Jakob Rath Date: Mon, 1 Aug 2022 14:54:26 +0200 Subject: [PATCH] union_find::reserve --- src/util/uint_set.h | 2 +- src/util/union_find.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/util/uint_set.h b/src/util/uint_set.h index 2b7e36360..6e64cc7ae 100644 --- a/src/util/uint_set.h +++ b/src/util/uint_set.h @@ -192,7 +192,7 @@ public: m_set(&s), m_index(at_end?s.get_max_elem():0), m_last(s.get_max_elem()) { scan(); SASSERT(invariant()); - } + } unsigned operator*() const { return m_index; } bool operator==(iterator const& it) const { return m_index == it.m_index; } bool operator!=(iterator const& it) const { return m_index != it.m_index; } diff --git a/src/util/union_find.h b/src/util/union_find.h index c82d25857..7e42e1bba 100644 --- a/src/util/union_find.h +++ b/src/util/union_find.h @@ -93,6 +93,11 @@ public: return r; } + void reserve(unsigned v) { + while (get_num_vars() <= v) + mk_var(); + } + unsigned get_num_vars() const { return m_find.size(); }