From 8f0c081c188a526ff2bd7115b31e48c4ed5bd47d Mon Sep 17 00:00:00 2001 From: Christian Krinitsin Date: Thu, 20 Mar 2025 10:35:43 +0100 Subject: server: add hashtable util functions --- src/server/hashtable.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/server') diff --git a/src/server/hashtable.h b/src/server/hashtable.h index 0fd0d2b..9d31cfc 100644 --- a/src/server/hashtable.h +++ b/src/server/hashtable.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include @@ -16,4 +17,24 @@ private: size_t size; std::vector>> table; + + std::hash hash_function; + + auto bucket_find_key(std::list> list, K key) + { + return std::find_if(list.begin(), list.end(), [&key](const std::pair& pair) { + return pair.first == key; + }); + } + + bool bucket_contains_key(std::list> list, K key) + { + return bucket_find_key(list, key) != list.end(); + } + + std::list> get_bucket(K key) + { + size_t index = hash_function(key) % size; + return table.at(index); + } }; -- cgit 1.4.1