utilmm::hash_map< Key, Data, Hash, Equal > Class Template Reference
[Hash function based containers]

map with hashing access More...

#include <utilmm/hash/hash_map.hh>

List of all members.

Public Types

typedef Key key_type
 Key type.
typedef Data data_type
 Data type.
typedef std::pair
< Key const, Data > 
value_type
 Value type for cells.
typedef
container_type::iterator 
iterator
 iterator type
typedef
container_type::const_iterator 
const_iterator
 const iterator type

Public Member Functions

void swap (hash_map &other)
 swapping function
size_t size () const
 element count
size_t max_size () const
 max element number
bool empty () const
 Emptyness test.
iterator begin ()
 beginning of table
iterator end ()
 end of table
const_iterator begin () const
 beginning of table
const_iterator end () const
 end of table
iterator find (key_arg key)
 Search for key.
const_iterator find (key_arg key) const
 Search key.
std::pair< iterator,
bool > 
insert (value_arg val)
 Cell insertion.
void erase (iterator const &first, iterator const &last)
 Remove range.
void erase (iterator const &i)
 Remove element.
void erase (key_arg key)
 remove element
void clear ()
 Remove all elements.


Detailed Description

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
class utilmm::hash_map< Key, Data, Hash, Equal >

map with hashing access

This is an unsorted map where keys are accessed using a hash function

Parameters:
Key the key
Data The data associated to Key
Hash hashing functor fo Key
Eqaul equality functor for Key
See also:
utilmm::hash
Author:
Frédéric Py <fpy@laas.fr>

Member Typedef Documentation

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
typedef Key utilmm::hash_map< Key, Data, Hash, Equal >::key_type

Key type.

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
typedef Data utilmm::hash_map< Key, Data, Hash, Equal >::data_type

Data type.

This is the type of the data asociated to the key

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
typedef std::pair<Key const, Data> utilmm::hash_map< Key, Data, Hash, Equal >::value_type

Value type for cells.

Value type for cells.

For hash_map value_type is a std::pair containing the key and the associated data.

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
typedef container_type::iterator utilmm::hash_map< Key, Data, Hash, Equal >::iterator

iterator type

iterator type

The type used to iterate through and manipulate this class

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
typedef container_type::const_iterator utilmm::hash_map< Key, Data, Hash, Equal >::const_iterator

const iterator type

const iterator type

The type used to iterate through this class without any modification


Member Function Documentation

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
void utilmm::hash_map< Key, Data, Hash, Equal >::swap ( hash_map< Key, Data, Hash, Equal > &  other  )  [inline]

swapping function

swapping values function

This function exchange the value of current instance with the value of another instance.

Parameters:
other The other instance

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
size_t utilmm::hash_map< Key, Data, Hash, Equal >::size (  )  const [inline]

element count

element count

Returns:
the number of element present in current container

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
size_t utilmm::hash_map< Key, Data, Hash, Equal >::max_size (  )  const [inline]

max element number

max elmement number

Returns:
The maximum possible number of elements

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
bool utilmm::hash_map< Key, Data, Hash, Equal >::empty (  )  const [inline]

Emptyness test.

Emptyness test.

Return values:
true if this instance has no element
false else
See also:
size() const

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
iterator utilmm::hash_map< Key, Data, Hash, Equal >::begin (  )  [inline]

beginning of table

Beginning of table.

Returns:
an iterator pointing to the beginning of the container
See also:
end()

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
iterator utilmm::hash_map< Key, Data, Hash, Equal >::end (  )  [inline]

end of table

End of table.

Returns:
an iterator pointing to the end of the container
See also:
begin()

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
const_iterator utilmm::hash_map< Key, Data, Hash, Equal >::begin (  )  const [inline]

beginning of table

Beginning of table.

Returns:
a const iterator pointing to the beginning of the container
See also:
end() const

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
const_iterator utilmm::hash_map< Key, Data, Hash, Equal >::end (  )  const [inline]

end of table

End of table.

Returns:
an iterator pointing to the end of the container
See also:
begin()

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
iterator utilmm::hash_map< Key, Data, Hash, Equal >::find ( key_arg  key  )  [inline]

Search for key.

Parameters:
key the key to find.
This function tries to search in table an element with key key

Returns:
An iterator pointing to the element with key key or end() if not found.

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
const_iterator utilmm::hash_map< Key, Data, Hash, Equal >::find ( key_arg  key  )  const [inline]

Search key.

Search for key.

Parameters:
key the key to find.
This function tries to search in table an element with key key

Returns:
An iterator pointing to the element with key key or end() if not found.

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
std::pair<iterator, bool> utilmm::hash_map< Key, Data, Hash, Equal >::insert ( value_arg  val  )  [inline]

Cell insertion.

Parameters:
val The value to insert
This function tries to insert val in current instance. It will not insert it if ther's already a cell with the same key as val

Returns:
A pair where first is an iterator pointing to cell with the same key as val and second is true if and only if val was inserted.

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
void utilmm::hash_map< Key, Data, Hash, Equal >::erase ( iterator const &  first,
iterator const &  last 
) [inline]

Remove range.

Remove elements.

Parameters:
first an iterator
last an iterator
removes all the element of the table in the range [first, last [

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
void utilmm::hash_map< Key, Data, Hash, Equal >::erase ( iterator const &  i  )  [inline]

Remove element.

Parameters:
i The lement to remove
This function removes the element pointed by i form the table

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
void utilmm::hash_map< Key, Data, Hash, Equal >::erase ( key_arg  key  )  [inline]

remove element

Parameters:
key the key of the element
This function erase, if any, the element whose key is key

template<typename Key, typename Data, class Hash = hash<Key>, class Equal = std::equal_to<Key>>
void utilmm::hash_map< Key, Data, Hash, Equal >::clear (  )  [inline]

Remove all elements.

remove all elements

This function is strictly equivelent to erase(begin(), end())


The documentation for this class was generated from the following file:
Generated on Tue Feb 19 10:51:01 2008 for Util-- by doxygen 1.5.3
SourceForge.net Project Page