All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fcl::SparseHashTable< Key, Data, HashFnc, TableT > Class Template Reference

A hash table implemented using unordered_map. More...

#include <hpp/fcl/broadphase/hash.h>

Public Member Functions

 SparseHashTable (const HashFnc &h)
 
void init (size_t)
 Init the hash table. The bucket size is dynamically decided. More...
 
void insert (Key key, Data value)
 insert one key-value pair into the hash table More...
 
std::vector< Data > query (Key key) const
 find the elements whose key is the same as the query More...
 
void remove (Key key, Data value)
 remove one key-value pair from the hash table More...
 
void clear ()
 clear the hash table More...
 

Protected Types

typedef std::list< Data > Bin
 
typedef TableT< size_t, BinTable
 

Protected Attributes

HashFnc h_
 
Table table_
 

Detailed Description

template<typename Key, typename Data, typename HashFnc, template< typename, typename > class TableT = unordered_map_hash_table>
class fcl::SparseHashTable< Key, Data, HashFnc, TableT >

A hash table implemented using unordered_map.

Member Typedef Documentation

template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
typedef std::list<Data> fcl::SparseHashTable< Key, Data, HashFnc, TableT >::Bin
protected
template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
typedef TableT<size_t, Bin> fcl::SparseHashTable< Key, Data, HashFnc, TableT >::Table
protected

Constructor & Destructor Documentation

template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
fcl::SparseHashTable< Key, Data, HashFnc, TableT >::SparseHashTable ( const HashFnc &  h)
inline

Member Function Documentation

template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
void fcl::SparseHashTable< Key, Data, HashFnc, TableT >::clear ( )
inline

clear the hash table

template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
void fcl::SparseHashTable< Key, Data, HashFnc, TableT >::init ( size_t  )
inline

Init the hash table. The bucket size is dynamically decided.

template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
void fcl::SparseHashTable< Key, Data, HashFnc, TableT >::insert ( Key  key,
Data  value 
)
inline

insert one key-value pair into the hash table

References fcl::SparseHashTable< Key, Data, HashFnc, TableT >::h_.

template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
std::vector<Data> fcl::SparseHashTable< Key, Data, HashFnc, TableT >::query ( Key  key) const
inline

find the elements whose key is the same as the query

References fcl::SparseHashTable< Key, Data, HashFnc, TableT >::h_.

template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
void fcl::SparseHashTable< Key, Data, HashFnc, TableT >::remove ( Key  key,
Data  value 
)
inline

remove one key-value pair from the hash table

References fcl::SparseHashTable< Key, Data, HashFnc, TableT >::h_.

Member Data Documentation

template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
HashFnc fcl::SparseHashTable< Key, Data, HashFnc, TableT >::h_
protected
template<typename Key , typename Data , typename HashFnc , template< typename, typename > class TableT = unordered_map_hash_table>
Table fcl::SparseHashTable< Key, Data, HashFnc, TableT >::table_
protected