Derive a class from unordered_set_base_hook in order to store objects in in an unordered_set/unordered_multi_set. More...
#include <unordered_set_hook.hpp>
Derive a class from unordered_set_base_hook in order to store objects in in an unordered_set/unordered_multi_set.
unordered_set_base_hook holds the data necessary to maintain the unordered_set/unordered_multi_set and provides an appropriate value_traits class for unordered_set/unordered_multi_set.
The hook admits the following options: tag<>
, void_pointer<>
, link_mode<>
, store_hash<>
and optimize_multikey<>
.
tag<>
defines a tag to identify the node. The same tag value can be used in different classes, but if a class is derived from more than one list_base_hook
, then each list_base_hook
needs its unique tag.
void_pointer<>
is the pointer type that will be used internally in the hook and the container configured to use this hook.
link_mode<>
will specify the linking mode of the hook (normal_link
, auto_unlink
or safe_link
).
store_hash<>
will tell the hook to store the hash of the value to speed up rehashings.
optimize_multikey<>
will tell the hook to store a link to form a group with other value with the same value to speed up searches and insertions in unordered_multisets with a great number of with equivalent keys.