FBB::Hash - Various mapping template classes using hashing
SYNOPSIS
#include <bobcat/hash>
DESCRIPTION
The FBB:Hash group of template classes offer hashing-based
mapping. Various variants are availabe, all based on the facilities offered by
the unordered_map.
The hash-map offered in the unordered_map container has a fairly
complex construction interface, and Hash is an attempt to simplify this
part of its interface. In practice, hashing uses a textual key, which may be
std::string or char * based, and the keys may be used either case
sensitively or case insensitively. Hash merely requires its users to
specify the map's value type, while the key may be a char const * or
std::string, used case sensitively or case insensitively.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
std::unordered_map, using various instantiations.
TYPE
All variants define value_type as the corresponding unordered_map
value_type. In practice a value_type defines a std::pair<Key, Value>,
where Key represents the hash's key-type and Value represents the
hash's value type.
CONSTRUCTORS
Variants of the FBB::Hash container are available for char const *
or std::string keys, used case sensitively or case insensitively. All
variants support default, copy, and move construction, support
construction from initializer
lists and support construction from iterators defining a half-open range of
value_type values.
The following variants are available (showing their default
constructors). Value refers to the value type stored in the hash table.
HashCharPtr<Value>(): this hash table uses case sensitivechar
const * keys;
HashCharCasePtr<Value>(): this hash table uses case insensitivechar const * keys;
HashString<Value>(): this hash table uses case sensitivestd::string keys;
HashStringCase<Value>(): this hash table uses case insensitivestd::string keys;
OVERLOADED OPERATOR
In addition to the index operator inherited from unordered_map the
overloaded copy and move assignment operators are available for all Hash
containers.
MEMBER FUNCTIONS
All members of the unordered_map container are available, as Hash
inherits from this template class.