Available in

(1) (3) (9) (3)/es (3)/fr (3)/ja (1)/ko (1)/zh_cn (1)/zh_tw

Contents

NAME

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 sensitive char const * keys:

o

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.

o

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 insensitive char const * keys:

o

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.

o

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 sensitive std::string keys:

o

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.

o

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 insensitive std::string keys:

o

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.

o

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.

EXAMPLE

#include <iostream>
#include <bobcat/hash>

using namespace std;
using namespace FBB;

pair<char const *, size_t> ap[] =
{
pair<char const *, size_t>("one", 1),
pair<char const *, size_t>("two", 2),
};

int main()
{
HashCharPtr<size_t> hcp;
HashCharPtr<size_t> hcp2(ap, ap + 2);
HashCharPtr<size_t> hcp3(hcp2);

hcp = hcp2;

cout << hcp2["one"] << endl;
}

FILES

bobcat/hash − defines the class interface

SEE ALSO

bobcat(7), g++(1), ext/hash_map

BUGS

None Reported.

DISTRIBUTION FILES

o

bobcat_2.08.01−x.dsc: detached signature;

o

bobcat_2.08.01−x.tar.gz: source archive;

o

bobcat_2.08.01−x_i386.changes: change log;

o

libbobcat1_2.08.01−x_*.deb: debian package holding the libraries;

o

libbobcat1−dev_2.08.01−x_*.deb: debian package holding the libraries, headers and manual pages;

o

http://sourceforge.net/projects/bobcat: public archive location;

BOBCAT

Bobcat is an acronym of ‘Brokken’s Own Base Classes And Templates’.

COPYRIGHT

This is free software, distributed under the terms of the GNU General Public License (GPL).

AUTHOR

Frank B. Brokken (f.b.brokken [AT] rug.nl).

COMMENTS

blog comments powered by Disqus