summaryrefslogtreecommitdiff
path: root/src/maps/hash.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/maps/hash.cpp')
-rw-r--r--src/maps/hash.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/maps/hash.cpp b/src/maps/hash.cpp
new file mode 100644
index 0000000..b3d80d1
--- /dev/null
+++ b/src/maps/hash.cpp
@@ -0,0 +1,26 @@
+#ifndef HASH_CPP
+#define HASH_CPP
+
+#include "hash.h"
+
+int
+hash::operator()(string s_key) const
+{
+ int i_hash = 0;
+ // cout << key << "%";
+
+ int i_size = s_key.size();
+
+ for( size_t i = 0; i < i_size; ++i )
+ i_hash = ( i_hash << 5 ) ^ s_key.at(i) ^ i_hash;
+
+ return i_hash;
+}
+
+bool
+hashmap_allocator::operator()(string s_key_1, string s_key_2) const
+{
+ return s_key_1.compare(s_key_2) == 0;
+}
+
+#endif