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 GNU g++(1) ext/hash_map header file. Hashing containers are not
(yet) part of the ANSI-ISO C++ standard, and an extension to the standard
is offered by GNU's g++(1) compiler. GNU's hash map is defined in the
__gnu_cxx namespace, indicating that this container is not one that is
offered in the C++ standard.
Unfortunately, the hash-map offered in the ext/hash_map header file
has a fairly complex interface, and FBB::Hash is an attempt to simplify
this 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. FBB::Hash simplifies the use of the
hash map offered in ext/hash_map by requiring its users to specify only
the map's value type.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
__gnu_cxx::hash_map, using various instantiations.
CONSTRUCTORS
Using case sensitivechar const * keys:
HashCharPtr<Value>():
The default constructor creates an empty hash-map container, in which
the keys are char const *s. The map contains value of template type
Value.
HashCharPtr<Value>(InputIterator begin, InputIterator end):
This constructor creates a hash-map container, using elements pointed
to by a pair of iterators in the hash-map. The iterators must point to
std::pair<char const *, Value> objects.
Using case insensitivechar const * keys:
HashCharCasePtr<Value>():
The default constructor creates an empty hash-map container, in which
the keys are char const *s. The map contains value of template type
Value.
HashCharCasePtr<Value>(InputIterator begin, InputIterator end):
This constructor creates a hash-map container, using elements pointed
to by a pair of iterators in the hash-map. The iterators must point to
std::pair<char const *, Value> objects.
Using case sensitivestd::string keys:
HashString<Value>():
The default constructor creates an empty hash-map container, in which
the keys are std::strings. The map contains value of template type
Value.
HashString<Value>(InputIterator begin, InputIterator end):
This constructor creates a hash-map container, using elements pointed
to by a pair of iterators in the hash-map. The iterators must point to
std::pair<std::string, Value> objects.
Using case insensitivestd::string keys:
HashStringCase<Value>():
The default constructor creates an empty hash-map container, in which
the keys are std::strings. The map contains value of template type
Value.
HashStringCase<Value>(InputIterator begin, InputIterator end):
This constructor creates a hash-map container, using elements pointed
to by a pair of iterators in the hash-map. The iterators must point to
std::pair<std::string, Value> objects.
The copy constructor is available for all FBB:Hash... hash-map
containers.
OVERLOADED OPERATOR
The overloaded assignment operator is available for all FBB:Hash
hash-map containers.
MEMBER FUNCTIONS
All members of __gnu_cxx::hash_map are available, as FBB::Hash
inherits from this template class. These members are (expected to be) the same
members as available for the std::map container.