Frobby 0.9.5
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
__gnu_cxx::hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc > Class Template Reference

#include <hashtable.h>

Public Types

typedef _Key key_type
 
typedef _Val value_type
 
typedef _HashFcn hasher
 
typedef _EqualKey key_equal
 
typedef size_t size_type
 
typedef ptrdiff_t difference_type
 
typedef value_typepointer
 
typedef const value_typeconst_pointer
 
typedef value_typereference
 
typedef const value_typeconst_reference
 
typedef _Alloc::template rebind< value_type >::other allocator_type
 
typedef _Hashtable_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Allociterator
 
typedef _Hashtable_const_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Allocconst_iterator
 

Public Member Functions

hasher hash_funct () const
 
key_equal key_eq () const
 
allocator_type get_allocator () const
 
 hashtable (size_type __n, const _HashFcn &__hf, const _EqualKey &__eql, const _ExtractKey &__ext, const allocator_type &__a=allocator_type())
 
 hashtable (size_type __n, const _HashFcn &__hf, const _EqualKey &__eql, const allocator_type &__a=allocator_type())
 
 hashtable (const hashtable &__ht)
 
hashtableoperator= (const hashtable &__ht)
 
 ~hashtable ()
 
size_type size () const
 
size_type max_size () const
 
bool empty () const
 
void swap (hashtable &__ht)
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
size_type bucket_count () const
 
size_type max_bucket_count () const
 
size_type elems_in_bucket (size_type __bucket) const
 
pair< iterator, boolinsert_unique (const value_type &__obj)
 
iterator insert_equal (const value_type &__obj)
 
pair< iterator, boolinsert_unique_noresize (const value_type &__obj)
 
iterator insert_equal_noresize (const value_type &__obj)
 
template<class _InputIterator >
void insert_unique (_InputIterator __f, _InputIterator __l)
 
template<class _InputIterator >
void insert_equal (_InputIterator __f, _InputIterator __l)
 
template<class _InputIterator >
void insert_unique (_InputIterator __f, _InputIterator __l, input_iterator_tag)
 
template<class _InputIterator >
void insert_equal (_InputIterator __f, _InputIterator __l, input_iterator_tag)
 
template<class _ForwardIterator >
void insert_unique (_ForwardIterator __f, _ForwardIterator __l, forward_iterator_tag)
 
template<class _ForwardIterator >
void insert_equal (_ForwardIterator __f, _ForwardIterator __l, forward_iterator_tag)
 
reference find_or_insert (const value_type &__obj)
 
iterator find (const key_type &__key)
 
const_iterator find (const key_type &__key) const
 
size_type count (const key_type &__key) const
 
pair< iterator, iteratorequal_range (const key_type &__key)
 
pair< const_iterator, const_iteratorequal_range (const key_type &__key) const
 
size_type erase (const key_type &__key)
 
void erase (const iterator &__it)
 
void erase (iterator __first, iterator __last)
 
void erase (const const_iterator &__it)
 
void erase (const_iterator __first, const_iterator __last)
 
void resize (size_type __num_elements_hint)
 
void clear ()
 

Private Types

typedef _Hashtable_node< _Val_Node
 
typedef _Alloc::template rebind< _Node >::other _Node_Alloc
 
typedef _Alloc::template rebind< _Node * >::other _Nodeptr_Alloc
 
typedef vector< _Node *, _Nodeptr_Alloc_Vector_type
 

Private Member Functions

_Node_M_get_node ()
 
void _M_put_node (_Node *__p)
 
size_type _M_next_size (size_type __n) const
 
void _M_initialize_buckets (size_type __n)
 
size_type _M_bkt_num_key (const key_type &__key) const
 
size_type _M_bkt_num (const value_type &__obj) const
 
size_type _M_bkt_num_key (const key_type &__key, size_t __n) const
 
size_type _M_bkt_num (const value_type &__obj, size_t __n) const
 
_Node_M_new_node (const value_type &__obj)
 
void _M_delete_node (_Node *__n)
 
void _M_erase_bucket (const size_type __n, _Node *__first, _Node *__last)
 
void _M_erase_bucket (const size_type __n, _Node *__last)
 
void _M_copy_from (const hashtable &__ht)
 

Private Attributes

_Node_Alloc _M_node_allocator
 
hasher _M_hash
 
key_equal _M_equals
 
_ExtractKey _M_get_key
 
_Vector_type _M_buckets
 
size_type _M_num_elements
 

Friends

struct _Hashtable_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >
 
struct _Hashtable_const_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >
 
template<class _Vl , class _Ky , class _HF , class _Ex , class _Eq , class _Al >
bool operator== (const hashtable< _Vl, _Ky, _HF, _Ex, _Eq, _Al > &, const hashtable< _Vl, _Ky, _HF, _Ex, _Eq, _Al > &)
 

Detailed Description

template<class _Val, class _Key, class _HashFcn, class _ExtractKey, class _EqualKey, class _Alloc>
class __gnu_cxx::hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >

Definition at line 254 of file hashtable.h.

Member Typedef Documentation

◆ _Node

Definition at line 278 of file hashtable.h.

◆ _Node_Alloc

Definition at line 287 of file hashtable.h.

◆ _Nodeptr_Alloc

Definition at line 288 of file hashtable.h.

◆ _Vector_type

Definition at line 289 of file hashtable.h.

◆ allocator_type

Definition at line 281 of file hashtable.h.

◆ const_iterator

Definition at line 314 of file hashtable.h.

◆ const_pointer

Definition at line 265 of file hashtable.h.

◆ const_reference

Definition at line 267 of file hashtable.h.

◆ difference_type

Definition at line 263 of file hashtable.h.

◆ hasher

Definition at line 259 of file hashtable.h.

◆ iterator

Definition at line 311 of file hashtable.h.

◆ key_equal

Definition at line 260 of file hashtable.h.

◆ key_type

Definition at line 257 of file hashtable.h.

◆ pointer

Definition at line 264 of file hashtable.h.

◆ reference

Definition at line 266 of file hashtable.h.

◆ size_type

Definition at line 262 of file hashtable.h.

◆ value_type

Definition at line 258 of file hashtable.h.

Constructor & Destructor Documentation

◆ hashtable() [1/3]

Definition at line 324 of file hashtable.h.

◆ hashtable() [2/3]

Definition at line 331 of file hashtable.h.

◆ hashtable() [3/3]

Definition at line 338 of file hashtable.h.

◆ ~hashtable()

Definition at line 358 of file hashtable.h.

Member Function Documentation

◆ _M_bkt_num() [1/2]

Definition at line 589 of file hashtable.h.

◆ _M_bkt_num() [2/2]

size_type __gnu_cxx::hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >::_M_bkt_num ( const value_type __obj,
size_t  __n 
) const
inlineprivate

Definition at line 597 of file hashtable.h.

◆ _M_bkt_num_key() [1/2]

Definition at line 585 of file hashtable.h.

◆ _M_bkt_num_key() [2/2]

size_type __gnu_cxx::hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >::_M_bkt_num_key ( const key_type __key,
size_t  __n 
) const
inlineprivate

Definition at line 593 of file hashtable.h.

◆ _M_copy_from()

Definition at line 1094 of file hashtable.h.

◆ _M_delete_node()

Definition at line 618 of file hashtable.h.

◆ _M_erase_bucket() [1/2]

template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
void __gnu_cxx::hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::_M_erase_bucket ( const size_type  __n,
_Node __first,
_Node __last 
)
private

Definition at line 1034 of file hashtable.h.

◆ _M_erase_bucket() [2/2]

template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
void __gnu_cxx::hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::_M_erase_bucket ( const size_type  __n,
_Node __last 
)
private

Definition at line 1059 of file hashtable.h.

◆ _M_get_node()

Definition at line 294 of file hashtable.h.

◆ _M_initialize_buckets()

Definition at line 576 of file hashtable.h.

◆ _M_new_node()

Definition at line 601 of file hashtable.h.

◆ _M_next_size()

Definition at line 572 of file hashtable.h.

◆ _M_put_node()

Definition at line 298 of file hashtable.h.

◆ begin() [1/2]

Definition at line 384 of file hashtable.h.

◆ begin() [2/2]

Definition at line 397 of file hashtable.h.

◆ bucket_count()

Definition at line 417 of file hashtable.h.

◆ clear()

Definition at line 1075 of file hashtable.h.

◆ count()

Definition at line 531 of file hashtable.h.

◆ elems_in_bucket()

Definition at line 425 of file hashtable.h.

◆ empty()

Definition at line 370 of file hashtable.h.

◆ end() [1/2]

Definition at line 393 of file hashtable.h.

◆ end() [2/2]

Definition at line 406 of file hashtable.h.

◆ equal_range() [1/2]

Definition at line 812 of file hashtable.h.

◆ equal_range() [2/2]

Definition at line 838 of file hashtable.h.

◆ erase() [1/5]

template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
void __gnu_cxx::hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::erase ( const const_iterator __it)
inline

Definition at line 980 of file hashtable.h.

◆ erase() [2/5]

Definition at line 905 of file hashtable.h.

◆ erase() [3/5]

Definition at line 866 of file hashtable.h.

◆ erase() [4/5]

template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
void __gnu_cxx::hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::erase ( const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 969 of file hashtable.h.

◆ erase() [5/5]

template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
void __gnu_cxx::hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::erase ( iterator  __first,
iterator  __last 
)

Definition at line 944 of file hashtable.h.

◆ find() [1/2]

Definition at line 507 of file hashtable.h.

◆ find() [2/2]

Definition at line 519 of file hashtable.h.

◆ find_or_insert()

Definition at line 790 of file hashtable.h.

◆ get_allocator()

Definition at line 283 of file hashtable.h.

◆ hash_funct()

Definition at line 270 of file hashtable.h.

◆ insert_equal() [1/4]

template<class _ForwardIterator >
void __gnu_cxx::hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >::insert_equal ( _ForwardIterator  __f,
_ForwardIterator  __l,
forward_iterator_tag   
)
inline

Definition at line 494 of file hashtable.h.

◆ insert_equal() [2/4]

Definition at line 460 of file hashtable.h.

◆ insert_equal() [3/4]

template<class _InputIterator >
void __gnu_cxx::hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >::insert_equal ( _InputIterator  __f,
_InputIterator  __l,
input_iterator_tag   
)
inline

Definition at line 474 of file hashtable.h.

◆ insert_equal() [4/4]

Definition at line 441 of file hashtable.h.

◆ insert_equal_noresize()

template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::iterator __gnu_cxx::hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::insert_equal_noresize ( const value_type __obj)

Definition at line 765 of file hashtable.h.

◆ insert_unique() [1/4]

template<class _ForwardIterator >
void __gnu_cxx::hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >::insert_unique ( _ForwardIterator  __f,
_ForwardIterator  __l,
forward_iterator_tag   
)
inline

Definition at line 483 of file hashtable.h.

◆ insert_unique() [2/4]

Definition at line 455 of file hashtable.h.

◆ insert_unique() [3/4]

template<class _InputIterator >
void __gnu_cxx::hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >::insert_unique ( _InputIterator  __f,
_InputIterator  __l,
input_iterator_tag   
)
inline

Definition at line 465 of file hashtable.h.

◆ insert_unique() [4/4]

Definition at line 434 of file hashtable.h.

◆ insert_unique_noresize()

template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
pair< typename hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::iterator, bool > __gnu_cxx::hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::insert_unique_noresize ( const value_type __obj)

Definition at line 746 of file hashtable.h.

◆ key_eq()

Definition at line 274 of file hashtable.h.

◆ max_bucket_count()

Definition at line 421 of file hashtable.h.

◆ max_size()

Definition at line 366 of file hashtable.h.

◆ operator=()

Definition at line 345 of file hashtable.h.

◆ resize()

template<class _Val , class _Key , class _HF , class _Ex , class _Eq , class _All >
void __gnu_cxx::hashtable< _Val, _Key, _HF, _Ex, _Eq, _All >::resize ( size_type  __num_elements_hint)

Definition at line 987 of file hashtable.h.

◆ size()

Definition at line 362 of file hashtable.h.

◆ swap()

Definition at line 374 of file hashtable.h.

Friends And Related Symbol Documentation

◆ _Hashtable_const_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >

Definition at line 314 of file hashtable.h.

◆ _Hashtable_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc >

Definition at line 314 of file hashtable.h.

◆ operator==

Member Data Documentation

◆ _M_buckets

Definition at line 305 of file hashtable.h.

◆ _M_equals

Definition at line 303 of file hashtable.h.

◆ _M_get_key

Definition at line 304 of file hashtable.h.

◆ _M_hash

Definition at line 302 of file hashtable.h.

◆ _M_node_allocator

Definition at line 291 of file hashtable.h.

◆ _M_num_elements

Definition at line 306 of file hashtable.h.


The documentation for this class was generated from the following file: