void consolidate() { m_main.erase_removed(); for (const auto& element : m_extra) { m_main.set(element.first, element.second); } m_extra.clear(); m_main.sort(); }
void clear() final { m_main.clear(); m_extra.clear(); }
std::pair<iterator, iterator> get_all(const TId id) { auto result_main = m_main.get_all(id); auto result_extra = m_extra.get_all(id); return std::make_pair(iterator(result_main.first, result_main.second, result_extra.first, result_extra.second), iterator(result_main.second, result_main.second, result_extra.second, result_extra.second)); }
void remove(const TId id, const TValue value) { m_main.remove(id, value); m_extra.remove(id, value); }
void set(const TId id, const TValue value) final { m_extra.set(id, value); }
size_t used_memory() const final { return m_main.used_memory() + m_extra.used_memory(); }
size_t size() const final { return m_main.size() + m_extra.size(); }
void clear() override final { m_main.clear(); m_extra.clear(); }
size_t size() const override final { return m_main.size() + m_extra.size(); }