Add missing non-template methods for hash table

This commit is contained in:
Nikita Lisitsa 2024-07-11 18:22:08 +03:00
parent 99ca3ec2eb
commit 54fb90214f

View file

@ -493,6 +493,16 @@ namespace psemek::util
return true; return true;
} }
bool erase(T const & key)
{
if (auto it = find(key); it != end())
{
erase(it);
return true;
}
return false;
}
template <typename Key> template <typename Key>
bool erase(Key const & key) bool erase(Key const & key)
{ {
@ -581,12 +591,22 @@ namespace psemek::util
return impl_.insert(std::move(value)); return impl_.insert(std::move(value));
} }
iterator find(Key const & key) const
{
return impl_.find(key);
}
template <typename Key1> template <typename Key1>
iterator find(Key1 const & key) const iterator find(Key1 const & key) const
{ {
return impl_.find(key); return impl_.find(key);
} }
bool contains(Key const & key) const
{
return find(key) != end();
}
template <typename Key1> template <typename Key1>
bool contains(Key1 const & key) const bool contains(Key1 const & key) const
{ {
@ -599,6 +619,16 @@ namespace psemek::util
return true; return true;
} }
bool erase(Key const & key)
{
if (auto it = find(key); it != end())
{
erase(it);
return true;
}
return false;
}
template <typename Key1> template <typename Key1>
bool erase(Key1 const & key) bool erase(Key1 const & key)
{ {