77 using std::forward_iterator_tag;
78 using std::input_iterator_tag;
79 using std::_Construct;
84 using std::__iterator_category;
216 53ul, 97ul, 193ul, 389ul, 769ul,
217 1543ul, 3079ul, 6151ul, 12289ul, 24593ul,
218 49157ul, 98317ul, 196613ul, 393241ul, 786433ul,
219 1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul,
220 50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul,
221 1610612741ul, 3221225473ul, 4294967291ul
287 typedef typename _Alloc::template rebind<_Node>::other
_Node_Alloc;
371 {
return size() == 0; }
453 template<
class _InputIterator>
458 template<
class _InputIterator>
463 template<
class _InputIterator>
472 template<
class _InputIterator>
481 template<
class _ForwardIterator>
484 forward_iterator_tag)
492 template<
class _ForwardIterator>
495 forward_iterator_tag)
646 _M_cur = _M_ht->_M_buckets[
__bucket];
674 _M_cur = _M_ht->_M_buckets[
__bucket];
690 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
697 if (
__ht1._M_buckets.size() !=
__ht2._M_buckets.size())
731 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
744 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
753 if (_M_equals(_M_get_key(
__cur->_M_val), _M_get_key(
__obj)))
763 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
772 if (_M_equals(_M_get_key(
__cur->_M_val), _M_get_key(
__obj)))
788 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
793 resize(_M_num_elements + 1);
799 if (_M_equals(_M_get_key(
__cur->_M_val), _M_get_key(
__obj)))
806 return __tmp->_M_val;
809 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
824 if (!_M_equals(_M_get_key(
__cur->_M_val),
__key))
832 return _Pii(end(), end());
835 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
851 if (!_M_equals(_M_get_key(
__cur->_M_val),
__key))
861 return _Pii(end(), end());
864 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
904 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
917 _M_delete_node(
__cur);
942 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
961 _M_erase_bucket(
__n, 0);
967 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
978 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
985 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
1012 _M_buckets.swap(
__tmp);
1032 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
1057 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
1066 _M_delete_node(
__cur);
1073 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
1084 _M_delete_node(
__cur);
1087 _M_buckets[
__i] = 0;
1089 _M_num_elements = 0;
1092 template<
class _Val,
class _Key,
class _HF,
class _Ex,
class _Eq,
class _All>
1098 _M_buckets.reserve(
__ht._M_buckets.size());
1099 _M_buckets.insert(_M_buckets.end(),
__ht._M_buckets.size(), (
_Node*) 0);
1118 _M_num_elements =
__ht._M_num_elements;
void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
const_iterator end() const
iterator insert_equal_noresize(const value_type &__obj)
void insert_equal(_ForwardIterator __f, _ForwardIterator __l, forward_iterator_tag)
ptrdiff_t difference_type
const value_type * const_pointer
size_type _M_num_elements
hashtable & operator=(const hashtable &__ht)
void _M_put_node(_Node *__p)
reference find_or_insert(const value_type &__obj)
vector< _Node *, _Nodeptr_Alloc > _Vector_type
size_type _M_bkt_num_key(const key_type &__key, size_t __n) const
size_type _M_next_size(size_type __n) const
void _M_initialize_buckets(size_type __n)
size_type max_bucket_count() const
hashtable(size_type __n, const _HashFcn &__hf, const _EqualKey &__eql, const allocator_type &__a=allocator_type())
hashtable(size_type __n, const _HashFcn &__hf, const _EqualKey &__eql, const _ExtractKey &__ext, const allocator_type &__a=allocator_type())
size_type _M_bkt_num(const value_type &__obj, size_t __n) const
_Hashtable_node< _Val > _Node
void _M_copy_from(const hashtable &__ht)
void _M_erase_bucket(const size_type __n, _Node *__first, _Node *__last)
pair< iterator, bool > insert_unique(const value_type &__obj)
void insert_unique(_InputIterator __f, _InputIterator __l, input_iterator_tag)
_Alloc::template rebind< _Node * >::other _Nodeptr_Alloc
_Alloc::template rebind< value_type >::other allocator_type
_Alloc::template rebind< _Node >::other _Node_Alloc
void insert_equal(_InputIterator __f, _InputIterator __l)
_Hashtable_const_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc > const_iterator
pair< iterator, bool > insert_unique_noresize(const value_type &__obj)
hasher hash_funct() const
void insert_unique(_InputIterator __f, _InputIterator __l)
const value_type & const_reference
void insert_equal(_InputIterator __f, _InputIterator __l, input_iterator_tag)
_Node_Alloc _M_node_allocator
size_type max_size() const
allocator_type get_allocator() const
void resize(size_type __num_elements_hint)
size_type bucket_count() const
size_type elems_in_bucket(size_type __bucket) const
void _M_delete_node(_Node *__n)
size_type erase(const key_type &__key)
const_iterator begin() const
size_type _M_bkt_num(const value_type &__obj) const
friend bool operator==(const hashtable< _Vl, _Ky, _HF, _Ex, _Eq, _Al > &, const hashtable< _Vl, _Ky, _HF, _Ex, _Eq, _Al > &)
_Node * _M_new_node(const value_type &__obj)
iterator insert_equal(const value_type &__obj)
hashtable(const hashtable &__ht)
void swap(hashtable &__ht)
iterator find(const key_type &__key)
size_type count(const key_type &__key) const
size_type _M_bkt_num_key(const key_type &__key) const
pair< iterator, iterator > equal_range(const key_type &__key)
_Hashtable_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc > iterator
void insert_unique(_ForwardIterator __f, _ForwardIterator __l, forward_iterator_tag)
const_iterator find(const key_type &__key) const
This file is a GNU extension to the Standard C++ Library (possibly containing extensions from the HP/...
static const unsigned long __stl_prime_list[_S_num_primes]
void swap(hashtable< _Val, _Key, _HF, _Extract, _EqKey, _All > &__ht1, hashtable< _Val, _Key, _HF, _Extract, _EqKey, _All > &__ht2)
unsigned long __stl_next_prime(unsigned long __n)
bool operator==(const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht1, const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht2)
bool operator!=(const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht1, const hashtable< _Val, _Key, _HF, _Ex, _Eq, _All > &__ht2)
_Hashtable_const_iterator()
_Hashtable_node< _Val > _Node
_Hashtable_const_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc > const_iterator
reference operator*() const
forward_iterator_tag iterator_category
pointer operator->() const
_Hashtable_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc > iterator
_Hashtable_const_iterator(const _Node *__n, const _Hashtable *__tab)
hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc > _Hashtable
bool operator==(const const_iterator &__it) const
const_iterator & operator++()
bool operator!=(const const_iterator &__it) const
ptrdiff_t difference_type
_Hashtable_const_iterator(const iterator &__it)
_Hashtable_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc > iterator
_Hashtable_node< _Val > _Node
bool operator==(const iterator &__it) const
bool operator!=(const iterator &__it) const
_Hashtable_iterator(_Node *__n, _Hashtable *__tab)
ptrdiff_t difference_type
_Hashtable_const_iterator< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc > const_iterator
reference operator*() const
forward_iterator_tag iterator_category
pointer operator->() const
hashtable< _Val, _Key, _HashFcn, _ExtractKey, _EqualKey, _Alloc > _Hashtable
_Hashtable_node * _M_next