What is a good C++ library for hash tables / hash maps similar to what java offers. I have worked with Google Sparsehash, but it has no support for collisions.
+6
A:
Use std::unordered_map (or unordered_multimap), which despite its name is a hash table - it will be part of the next C++ standard, and is available in most current C++ implementations. Do not use the classes with hash
in their names that your implementation may provide - they are not and will not be standard.
anon
2010-05-10 11:30:03
Also available in Boost.
doublep
2010-05-10 14:41:34
+1
A:
In addition to those mentioned in other answers, you could try MCT's closed_hash_map
or linked_hash_map
. It is internally similar to Google SparseHash, but doesn't restrict values used and has some other functional advantages.
I'm not sure I understand what you mean by "no support for collisions", though. Both Google SparseHash and similarly implemented MCT of course handle collisions fine, though differently than Java's HashMap
.
doublep
2010-05-10 14:43:55