std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits > Class Template Reference
Containers » Unordered Associative » Base and Implementation Classes

`#include <hashtable.h>`

Inheritance diagram for std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >:
[legend]

## Public Types

typedef _Alloc | allocator_type
using | const_iterator = typename __hashtable_base::const_iterator
using | const_local_iterator = typename __hashtable_base::const_local_iterator
typedef __value_alloc_traits::const_pointer | const_pointer
typedef const value_type & | const_reference
using | difference_type = typename __hashtable_base::difference_type
using | iterator = typename __hashtable_base::iterator
typedef _Equal | key_equal
typedef _Key | key_type
using | local_iterator = typename __hashtable_base::local_iterator
typedef __value_alloc_traits::pointer | pointer
typedef value_type & | reference
using | size_type = typename __hashtable_base::size_type
typedef _Value | value_type

## Public Member Functions

| _Hashtable (_Hashtable &&__ht) noexcept(_S_nothrow_move())
| _Hashtable (_Hashtable &&__ht, const allocator_type &__a) noexcept(_S_nothrow_move< __node_alloc_traits::_S_always_equal()>())
template<typename _InputIterator >
| _Hashtable (_InputIterator __f, _InputIterator __l, size_type __n=0, const _H1 &__hf=_H1(), const key_equal &__eql=key_equal(), const allocator_type &__a=allocator_type())
template<typename _InputIterator >
| _Hashtable (_InputIterator __first, _InputIterator __last, size_type __bucket_hint, const _H1 &, const _H2 &, const _Hash &, const _Equal &, const _ExtractKey &, const allocator_type &)
| _Hashtable (const _Hashtable &)
| _Hashtable (const _Hashtable &, const allocator_type &)
| _Hashtable (const allocator_type &__a)
| _Hashtable (initializer_list< value_type > __l, size_type __n=0, const _H1 &__hf=_H1(), const key_equal &__eql=key_equal(), const allocator_type &__a=allocator_type())
| _Hashtable (size_type __bucket_hint, const _H1 &, const _H2 &, const _Hash &, const _Equal &, const _ExtractKey &, const allocator_type &)
| _Hashtable (size_type __n, const _H1 &__hf=_H1(), const key_equal &__eql=key_equal(), const allocator_type &__a=allocator_type())
const _RehashPolicy & | __rehash_policy () const
void | __rehash_policy (const _RehashPolicy &__pol)
template<typename... _Args>
auto | _M_emplace (const_iterator __hint, std::false_type, _Args &&... __args) -> iterator
template<typename... _Args>
auto | _M_emplace (std::true_type, _Args &&... __args) -> pair< iterator, bool >
template<typename _Arg , typename _NodeGenerator >
auto | _M_insert (_Arg &&__v, const _NodeGenerator &__node_gen, true_type, size_type __n_elt) -> pair< iterator, bool >
template<typename _Arg , typename _NodeGenerator >
auto | _M_insert (const_iterator __hint, _Arg &&__v, const _NodeGenerator &__node_gen, false_type) -> iterator
const_iterator | begin () const noexcept
iterator | begin () noexcept
local_iterator | begin (size_type __n)
const_local_iterator | begin (size_type __n) const
size_type | bucket (const key_type &__k) const
size_type | bucket_count () const noexcept
size_type | bucket_size (size_type __n) const
const_iterator | cbegin () const noexcept
const_local_iterator | cbegin (size_type __n) const
const_iterator | cend () const noexcept
const_local_iterator | cend (size_type __n) const
void | clear () noexcept
size_type | count (const key_type &__k) const
template<typename... _Args>
__ireturn_type | emplace (_Args &&... __args)
template<typename... _Args>
iterator | emplace_hint (const_iterator __hint, _Args &&... __args)
_GLIBCXX_NODISCARD bool | empty () const noexcept
const_iterator | end () const noexcept
iterator | end () noexcept
local_iterator | end (size_type __n)
const_local_iterator | end (size_type __n) const
std::pair< iterator, iterator > | equal_range (const key_type &__k)
std::pair< const_iterator, const_iterator > | equal_range (const key_type &__k) const
size_type | erase (const key_type &__k)
iterator | erase (const_iterator)
iterator | erase (const_iterator, const_iterator)
iterator | erase (iterator __it)
iterator | find (const key_type &__k)
const_iterator | find (const key_type &__k) const
allocator_type | get_allocator () const noexcept
key_equal | key_eq () const
float | load_factor () const noexcept
size_type | max_bucket_count () const noexcept
size_type | max_size () const noexcept
_Hashtable & | operator= (_Hashtable &&__ht) noexcept(__node_alloc_traits::_S_nothrow_move() &&is_nothrow_move_assignable< _H1 >::value &&is_nothrow_move_assignable< _Equal >::value)
_Hashtable & | operator= (const _Hashtable &__ht)
_Hashtable & | operator= (initializer_list< value_type > __l)
void | rehash (size_type __n)
size_type | size () const noexcept
void | swap (_Hashtable &) noexcept(__and_< __is_nothrow_swappable< _H1 >, __is_nothrow_swappable< _Equal > >::value)

## Protected Member Functions

size_type | _M_bucket_index (__node_type *__n) const noexcept
size_type | _M_bucket_index (const key_type &__k, __hash_code __c) const
template<typename... _Args>
iterator | _M_emplace (const_iterator, std::false_type, _Args &&... __args)
template<typename... _Args>
iterator | _M_emplace (const_iterator, std::true_type __uk, _Args &&... __args)
template<typename... _Args>
iterator | _M_emplace (std::false_type __uk, _Args &&... __args)
template<typename... _Args>
std::pair< iterator, bool > | _M_emplace (std::true_type, _Args &&... __args)
_Equal & | _M_eq ()
const _Equal & | _M_eq () const
bool | _M_equals (const _Key &__k, __hash_code __c, __node_type *__n) const
iterator | _M_erase (size_type __bkt, __node_base *__prev_n, __node_type *__n)
size_type | _M_erase (std::false_type, const key_type &)
size_type | _M_erase (std::true_type, const key_type &)
__node_base * | _M_find_before_node (size_type, const key_type &, __hash_code) const
__node_type * | _M_find_node (size_type __bkt, const key_type &__key, __hash_code __c) const
__node_base * | _M_get_previous_node (size_type __bkt, __node_base *__n)
template<typename _Arg , typename _NodeGenerator >
std::pair< iterator, bool > | _M_insert (_Arg &&, const _NodeGenerator &, true_type, size_type=1)
template<typename _Arg , typename _NodeGenerator >
iterator | _M_insert (_Arg &&__arg, const _NodeGenerator &__node_gen, false_type __uk)
template<typename _Arg , typename _NodeGenerator >
iterator | _M_insert (const_iterator, _Arg &&, const _NodeGenerator &, false_type)
template<typename _Arg , typename _NodeGenerator >
iterator | _M_insert (const_iterator, _Arg &&__arg, const _NodeGenerator &__node_gen, true_type __uk)
void | _M_insert_bucket_begin (size_type, __node_type *)
iterator | _M_insert_multi_node (__node_type *__hint, __hash_code __code, __node_type *__n)
iterator | _M_insert_unique_node (size_type __bkt, __hash_code __code, __node_type *__n, size_type __n_elt=1)
void | _M_remove_bucket_begin (size_type __bkt, __node_type *__next_n, size_type __next_bkt)
void | _M_swap (_Hashtable_base &__x)

## Friends

template<typename _Keya , typename _Valuea , typename _Alloca , typename _ExtractKeya , typename _Equala , typename _H1a , typename _H2a , typename _Hasha , typename _RehashPolicya , typename _Traitsa , bool _Constant_iteratorsa>
struct | __detail::_Insert
template<typename _Keya , typename _Valuea , typename _Alloca , typename _ExtractKeya , typename _Equala , typename _H1a , typename _H2a , typename _Hasha , typename _RehashPolicya , typename _Traitsa >
struct | __detail::_Insert_base
template<typename _Keya , typename _Valuea , typename _Alloca , typename _ExtractKeya , typename _Equala , typename _H1a , typename _H2a , typename _Hasha , typename _RehashPolicya , typename _Traitsa , bool _Unique_keysa>
struct | __detail::_Map_base

## Detailed Description

template<typename _Key, typename _Value, typename _Alloc, typename _ExtractKey, typename _Equal, typename _H1, typename _H2, typename _Hash, typename _RehashPolicy, typename _Traits>
class std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >

Primary class template _Hashtable.

Template Parameters

  _Value | CopyConstructible type.
  _Key | CopyConstructible type.
  _Alloc | An allocator type ([lib.allocator.requirements]) whose _Alloc::value_type is _Value. As a conforming extension, we allow for _Alloc::value_type != _Value.
  _ExtractKey | Function object that takes an object of type _Value and returns a value of type _Key.
  _Equal | Function object that takes two objects of type k and returns a bool-like value that is true if the two objects are considered equal.
  _H1 | The hash function. A unary function object with argument type _Key and result type size_t. Return values should be distributed over the entire range [0, numeric_limits<size_t>:::max()].
  _H2 | The range-hashing function (in the terminology of Tavori and Dreizin). A binary function object whose argument types and result type are all size_t. Given arguments r and N, the return value is in the range [0, N).
  _Hash | The ranged hash function (Tavori and Dreizin). A binary function whose argument types are _Key and size_t and whose result type is size_t. Given arguments k and N, the return value is in the range [0, N). Default: hash(k, N) = h2(h1(k), N). If _Hash is anything other than the default, _H1 and _H2 are ignored.

  _RehashPolicy

  Policy class with three members, all of which govern the bucket count. _M_next_bkt(n) returns a bucket count no smaller than n. _M_bkt_for_elements(n) returns a bucket count appropriate for an element count of n. _M_need_rehash(n_bkt, n_elt, n_ins) determines whether, if the current bucket count is n_bkt and the current element count is n_elt, we need to increase the bucket count. If so, returns make_pair(true, n), where n is the new bucket count. If not, returns make_pair(false, <anything>)

  _Traits | Compile-time class with three boolean std::integral_constant members: __cache_hash_code, __constant_iterators, __unique_keys.

Each _Hashtable data structure has:

- _Bucket[] _M_buckets
- _Hash_node_base _M_before_begin
- size_type _M_bucket_count
- size_type _M_element_count

with _Bucket being _Hash_node* and _Hash_node containing:

- _Hash_node* _M_next
- Tp _M_value
- size_t _M_hash_code if cache_hash_code is true

In terms of Standard containers the hashtable is like the aggregation of:

- std::forward_list<_Node> containing the elements
- std::vector<std::forward_list<_Node>::iterator> representing the buckets

The non-empty buckets contain the node before the first node in the bucket. This design makes it possible to implement something like a std::forward_list::insert_after on container insertion and std::forward_list::erase_after on container erase calls. _M_before_begin is equivalent to std::forward_list::before_begin. Empty buckets contain nullptr. Note that one of the non-empty buckets contains &_M_before_begin which is not a dereferenceable node so the node pointer in a bucket shall never be dereferenced, only its next node can be.

Walking through a bucket's nodes requires a check on the hash code to see if each node is still in the bucket. Such a design assumes a quite efficient hash functor and is one of the reasons it is highly advisable to set __cache_hash_code to true.

The container iterators are simply built from nodes. This way incrementing the iterator is perfectly efficient independent of how many empty buckets there are in the container.

On insert we compute the element's hash code and use it to find the bucket index. If the element must be inserted in an empty bucket we add it at the beginning of the singly linked list and make the bucket point to _M_before_begin. The bucket that used to point to _M_before_begin, if any, is updated to point to its new before begin node.

On erase, the simple iterator design requires using the hash functor to get the index of the bucket to update. For this reason, when __cache_hash_code is set to false the hash functor must not throw and this is enforced by a static assertion.

Functionality is implemented by decomposition into base classes, where the derived _Hashtable class is used in _Map_base, _Insert, _Rehash_base, and _Equality base classes to access the "this" pointer. _Hashtable_base is used in the base classes as a non-recursive, fully-completed-type so that detailed nested type information, such as iterator type and node type, can be used. This is similar to the "Curiously Recurring Template Pattern" (CRTP) technique, but uses a reconstructed, not explicitly passed, template pattern.

Base class templates are:

- __detail::_Hashtable_base
- __detail::_Map_base
- __detail::_Insert
- __detail::_Rehash_base
- __detail::_Equality

Definition at line 173 of file bits/hashtable.h.

## Member Typedef Documentation

## allocator_type

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

typedef _Alloc std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::allocator_type

Definition at line 213 of file bits/hashtable.h.

## const_iterator

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

using std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::const_iterator = typename __hashtable_base::const_iterator

Definition at line 315 of file bits/hashtable.h.

## const_local_iterator

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

using std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::const_local_iterator = typename __hashtable_base:: const_local_iterator

Definition at line 318 of file bits/hashtable.h.

## const_pointer

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

typedef __value_alloc_traits::const_pointer std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::const_pointer

Definition at line 219 of file bits/hashtable.h.

## const_reference

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

typedef const value_type& std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::const_reference

Definition at line 221 of file bits/hashtable.h.

## difference_type

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

using std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::difference_type = typename __hashtable_base::difference_type

Definition at line 312 of file bits/hashtable.h.

## iterator

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

using std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::iterator = typename __hashtable_base::iterator

Definition at line 314 of file bits/hashtable.h.

## key_equal

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

typedef _Equal std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::key_equal

Definition at line 214 of file bits/hashtable.h.

## key_type

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

typedef _Key std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::key_type

Definition at line 211 of file bits/hashtable.h.

## local_iterator

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

using std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::local_iterator = typename __hashtable_base::local_iterator

Definition at line 317 of file bits/hashtable.h.

## pointer

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

typedef __value_alloc_traits::pointer std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::pointer

Definition at line 218 of file bits/hashtable.h.

## reference

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

typedef value_type& std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::reference

Definition at line 220 of file bits/hashtable.h.

## size_type

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

using std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::size_type = typename __hashtable_base::size_type

Definition at line 311 of file bits/hashtable.h.

## value_type

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

typedef _Value std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::value_type

Definition at line 212 of file bits/hashtable.h.

## Constructor & Destructor Documentation

## _Hashtable() [1/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | size_type | __bucket_hint,
|  | const _H1 & | __h1,
|  | const _H2 & | __h2,
|  | const _Hash & | __h,
|  | const _Equal & | __eq,
|  | const _ExtractKey & | __exk,
|  | const allocator_type & | __a
| ) |  |

Definition at line 984 of file bits/hashtable.h.

## _Hashtable() [2/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _InputIterator >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | _InputIterator | __first,
|  | _InputIterator | __last,
|  | size_type | __bucket_hint,
|  | const _H1 & | __h1,
|  | const _H2 & | __h2,
|  | const _Hash & | __h,
|  | const _Equal & | __eq,
|  | const _ExtractKey & | __exk,
|  | const allocator_type & | __a
| ) |  |

Definition at line 1005 of file bits/hashtable.h.

## _Hashtable() [3/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | const _Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits > & | __ht | ) |

Definition at line 1261 of file bits/hashtable.h.

## _Hashtable() [4/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | _Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits > && | __ht | ) |

inline noexcept

Definition at line 453 of file bits/hashtable.h.

## _Hashtable() [5/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | const _Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits > & | __ht,
|  | const allocator_type & | __a
| ) |  |

Definition at line 1317 of file bits/hashtable.h.

## _Hashtable() [6/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | _Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits > && | __ht,
|  | const allocator_type & | __a
| ) |  |

inline noexcept

Definition at line 461 of file bits/hashtable.h.

## _Hashtable() [7/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | const allocator_type & | __a | ) |

inline explicit

Definition at line 469 of file bits/hashtable.h.

## _Hashtable() [8/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | size_type | __n,
|  | const _H1 & | __hf = `_H1()`,
|  | const key_equal & | __eql = `key_equal()`,
|  | const allocator_type & | __a = `allocator_type()`
| ) |  |

inline explicit

Definition at line 474 of file bits/hashtable.h.

## _Hashtable() [9/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _InputIterator >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | _InputIterator | __f,
|  | _InputIterator | __l,
|  | size_type | __n = `0`,
|  | const _H1 & | __hf = `_H1()`,
|  | const key_equal & | __eql = `key_equal()`,
|  | const allocator_type & | __a = `allocator_type()`
| ) |  |

inline

Definition at line 483 of file bits/hashtable.h.

## _Hashtable() [10/10]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_Hashtable | ( | initializer_list< value_type > | __l,
|  | size_type | __n = `0`,
|  | const _H1 & | __hf = `_H1()`,
|  | const key_equal & | __eql = `key_equal()`,
|  | const allocator_type & | __a = `allocator_type()`
| ) |  |

inline

Definition at line 492 of file bits/hashtable.h.

## ~_Hashtable()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::~_Hashtable | ( |  | ) |

noexcept

Definition at line 1384 of file bits/hashtable.h.

## Member Function Documentation

## __rehash_policy() [1/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

const _RehashPolicy & std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::__rehash_policy | ( |  | ) | const

inline

Definition at line 645 of file bits/hashtable.h.

## __rehash_policy() [2/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

void std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::__rehash_policy | ( | const _RehashPolicy & | __pol | ) |

inline

Definition at line 649 of file bits/hashtable.h.

## _M_bucket_index() [1/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

size_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_bucket_index | ( | __node_type * | __n | ) | const

inline protected noexcept

Definition at line 671 of file bits/hashtable.h.

## _M_bucket_index() [2/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

size_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_bucket_index | ( | const key_type & | __k,
|  | __hash_code | __c
| ) |  | const

inline protected

Definition at line 675 of file bits/hashtable.h.

## _M_emplace() [1/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename... _Args>

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_emplace | ( | const_iterator | __hint,
|  | std::false_type | ,
|  | _Args &&... | __args
| ) |  | -> iterator

Definition at line 1706 of file bits/hashtable.h.

## _M_emplace() [2/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename... _Args>

iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_emplace | ( | const_iterator | ,
|  | std::true_type | __uk,
|  | _Args &&... | __args
| ) |  |

inline protected

Definition at line 731 of file bits/hashtable.h.

## _M_emplace() [3/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename... _Args>

iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_emplace | ( | std::false_type | __uk,
|  | _Args &&... | __args
| ) |  |

inline protected

Definition at line 725 of file bits/hashtable.h.

## _M_emplace() [4/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename... _Args>

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_emplace | ( | std::true_type | ,
|  | _Args &&... | __args
| ) |  | -> pair<iterator, bool>

Definition at line 1668 of file bits/hashtable.h.

## _M_eq() [1/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

_Equal & std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::_M_eq | ( |  | ) |

inline protected inherited

Definition at line 1849 of file hashtable_policy.h.

## _M_eq() [2/2]

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

const _Equal & std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::_M_eq | ( |  | ) | const

inline protected inherited

Definition at line 1846 of file hashtable_policy.h.

## _M_equals()

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

bool std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::_M_equals | ( | const _Key & | __k,
|  | __hash_code | __c,
|  | __node_type * | __n
| ) |  | const

inline protected inherited

Definition at line 1829 of file hashtable_policy.h.

## _M_erase() [1/3]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_erase | ( | size_type | __bkt,
|  | __node_base * | __prev_n,
|  | __node_type * | __n
| ) |  |

protected

Definition at line 1905 of file bits/hashtable.h.

## _M_erase() [2/3]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_erase | ( | std::false_type | ,
|  | const key_type & | __k
| ) |  |

protected

Definition at line 1957 of file bits/hashtable.h.

## _M_erase() [3/3]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_erase | ( | std::true_type | ,
|  | const key_type & | __k
| ) |  |

protected

Definition at line 1933 of file bits/hashtable.h.

## _M_find_before_node()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_find_before_node | ( | size_type | __n,
|  | const key_type & | __k,
|  | __hash_code | __code
| ) |  | const

protected

Definition at line 1568 of file bits/hashtable.h.

## _M_find_node()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

__node_type * std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_find_node | ( | size_type | __bkt,
|  | const key_type & | __key,
|  | __hash_code | __c
| ) |  | const

inline protected

Definition at line 684 of file bits/hashtable.h.

## _M_get_previous_node()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_get_previous_node | ( | size_type | __bkt,
|  | __node_base * | __n
| ) |  |

protected

Definition at line 1651 of file bits/hashtable.h.

## _M_insert() [1/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _Arg , typename _NodeGenerator >

iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert | ( | _Arg && | __arg,
|  | const _NodeGenerator & | __node_gen,
|  | false_type | __uk
| ) |  |

inline protected

Definition at line 744 of file bits/hashtable.h.

## _M_insert() [2/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _Arg , typename _NodeGenerator >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert | ( | _Arg && | __v,
|  | const _NodeGenerator & | __node_gen,
|  | true_type | ,
|  | size_type | __n_elt
| ) |  | -> pair<iterator, bool>

Definition at line 1839 of file bits/hashtable.h.

## _M_insert() [3/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _Arg , typename _NodeGenerator >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert | ( | const_iterator | __hint,
|  | _Arg && | __v,
|  | const _NodeGenerator & | __node_gen,
|  | false_type |
| ) |  | -> iterator

Definition at line 1864 of file bits/hashtable.h.

## _M_insert() [4/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _Arg , typename _NodeGenerator >

iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert | ( | const_iterator | ,
|  | _Arg && | __arg,
|  | const _NodeGenerator & | __node_gen,
|  | true_type | __uk
| ) |  |

inline protected

Definition at line 754 of file bits/hashtable.h.

## _M_insert_bucket_begin()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

void std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert_bucket_begin | ( | size_type | __bkt,
|  | __node_type * | __node
| ) |  |

protected

Definition at line 1596 of file bits/hashtable.h.

## _M_insert_multi_node()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert_multi_node | ( | __node_type * | __hint,
|  | __hash_code | __code,
|  | __node_type * | __n
| ) |  |

protected

Definition at line 1774 of file bits/hashtable.h.

## _M_insert_unique_node()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_insert_unique_node | ( | size_type | __bkt,
|  | __hash_code | __code,
|  | __node_type * | __n,
|  | size_type | __n_elt = `1`
| ) |  |

protected

Definition at line 1734 of file bits/hashtable.h.

## _M_remove_bucket_begin()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

void std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::_M_remove_bucket_begin | ( | size_type | __bkt,
|  | __node_type * | __next_n,
|  | size_type | __next_bkt
| ) |  |

protected

Definition at line 1627 of file bits/hashtable.h.

## _M_swap()

template<typename _Key , typename _Value , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _Traits >

void std::__detail::_Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits >::_M_swap | ( | _Hashtable_base< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits > & | __x | ) |

inline protected inherited

Definition at line 1839 of file hashtable_policy.h.

## begin() [1/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

const_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::begin | ( |  | ) | const

inline noexcept

Definition at line 540 of file bits/hashtable.h.

## begin() [2/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::begin | ( |  | ) |

inline noexcept

Definition at line 536 of file bits/hashtable.h.

## begin() [3/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

local_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::begin | ( | size_type | __n | ) |

inline

Definition at line 600 of file bits/hashtable.h.

## begin() [4/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

const_local_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::begin | ( | size_type | __n | ) | const

inline

Definition at line 611 of file bits/hashtable.h.

## bucket()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

size_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::bucket | ( | const key_type & | __k | ) | const

inline

Definition at line 596 of file bits/hashtable.h.

## bucket_count()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

size_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::bucket_count | ( |  | ) | const

inline noexcept

Definition at line 584 of file bits/hashtable.h.

## bucket_size()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

size_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::bucket_size | ( | size_type | __n | ) | const

inline

Definition at line 592 of file bits/hashtable.h.

## cbegin() [1/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

const_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::cbegin | ( |  | ) | const

inline noexcept

Definition at line 552 of file bits/hashtable.h.

## cbegin() [2/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

const_local_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::cbegin | ( | size_type | __n | ) | const

inline

Definition at line 623 of file bits/hashtable.h.

## cend() [1/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

const_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::cend | ( |  | ) | const

inline noexcept

Definition at line 556 of file bits/hashtable.h.

## cend() [2/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

const_local_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::cend | ( | size_type | __n | ) | const

inline

Definition at line 630 of file bits/hashtable.h.

## clear()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

void std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::clear | ( |  | ) |

noexcept

Definition at line 2060 of file bits/hashtable.h.

## count()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::count | ( | const key_type & | __k | ) | const

Definition at line 1480 of file bits/hashtable.h.

## emplace()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename... _Args>

__ireturn_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::emplace | ( | _Args &&... | __args | ) |

inline

Definition at line 780 of file bits/hashtable.h.

## emplace_hint()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename... _Args>

iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::emplace_hint | ( | const_iterator | __hint,
|  | _Args &&... | __args
| ) |  |

inline

Definition at line 785 of file bits/hashtable.h.

## empty()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

_GLIBCXX_NODISCARD bool std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::empty | ( |  | ) | const

inline noexcept

Definition at line 564 of file bits/hashtable.h.

## end() [1/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

const_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::end | ( |  | ) | const

inline noexcept

Definition at line 548 of file bits/hashtable.h.

## end() [2/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::end | ( |  | ) |

inline noexcept

Definition at line 544 of file bits/hashtable.h.

## end() [3/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

local_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::end | ( | size_type | __n | ) |

inline

Definition at line 607 of file bits/hashtable.h.

## end() [4/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

const_local_iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::end | ( | size_type | __n | ) | const

inline

Definition at line 618 of file bits/hashtable.h.

## equal_range() [1/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::equal_range | ( | const key_type & | __k | ) |

Definition at line 1512 of file bits/hashtable.h.

## equal_range() [2/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::equal_range | ( | const key_type & | __k | ) | const

Definition at line 1539 of file bits/hashtable.h.

## erase() [1/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

size_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::erase | ( | const key_type & | __k | ) |

inline

Definition at line 803 of file bits/hashtable.h.

## erase() [2/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::erase | ( | const_iterator | __it | ) |

Definition at line 1885 of file bits/hashtable.h.

## erase() [3/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::erase | ( | const_iterator | __first,
|  | const_iterator | __last
| ) |  |

Definition at line 2013 of file bits/hashtable.h.

## erase() [4/4]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

iterator std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::erase | ( | iterator | __it | ) |

inline

Definition at line 799 of file bits/hashtable.h.

## find() [1/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::find | ( | const key_type & | __k | ) |

Definition at line 1448 of file bits/hashtable.h.

## find() [2/2]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::find | ( | const key_type & | __k | ) | const

Definition at line 1464 of file bits/hashtable.h.

## get_allocator()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

allocator_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::get_allocator | ( |  | ) | const

inline noexcept

Definition at line 568 of file bits/hashtable.h.

## key_eq()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

key_equal std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::key_eq | ( |  | ) | const

inline

Definition at line 577 of file bits/hashtable.h.

## load_factor()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

float std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::load_factor | ( |  | ) | const

inline noexcept

Definition at line 634 of file bits/hashtable.h.

## max_bucket_count()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

size_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::max_bucket_count | ( |  | ) | const

inline noexcept

Definition at line 588 of file bits/hashtable.h.

## max_size()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

size_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::max_size | ( |  | ) | const

inline noexcept

Definition at line 572 of file bits/hashtable.h.

## operator=() [1/3]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

_Hashtable & std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::operator= | ( | _Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits > && | __ht | ) |

inline noexcept

Definition at line 505 of file bits/hashtable.h.

## operator=() [2/3]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

auto std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::operator= | ( | const _Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits > & | __ht | ) |

Definition at line 1035 of file bits/hashtable.h.

## operator=() [3/3]

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

_Hashtable & std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::operator= | ( | initializer_list< value_type > | __l | ) |

inline

Definition at line 518 of file bits/hashtable.h.

## rehash()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

void std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::rehash | ( | size_type | __n | ) |

Definition at line 2075 of file bits/hashtable.h.

## size()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

size_type std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::size | ( |  | ) | const

inline noexcept

Definition at line 560 of file bits/hashtable.h.

## swap()

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >

void std::_Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits >::swap | ( | _Hashtable< _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits > & | __x | ) |

noexcept

Definition at line 1397 of file bits/hashtable.h.

## Friends And Related Symbol Documentation

## __detail::_Insert

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _Keya , typename _Valuea , typename _Alloca , typename _ExtractKeya , typename _Equala , typename _H1a , typename _H2a , typename _Hasha , typename _RehashPolicya , typename _Traitsa , bool _Constant_iteratorsa>

friend struct __detail::_Insert

friend

Definition at line 308 of file bits/hashtable.h.

## __detail::_Insert_base

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _Keya , typename _Valuea , typename _Alloca , typename _ExtractKeya , typename _Equala , typename _H1a , typename _H2a , typename _Hasha , typename _RehashPolicya , typename _Traitsa >

friend struct __detail::_Insert_base

friend

Definition at line 301 of file bits/hashtable.h.

## __detail::_Map_base

template<typename _Key , typename _Value , typename _Alloc , typename _ExtractKey , typename _Equal , typename _H1 , typename _H2 , typename _Hash , typename _RehashPolicy , typename _Traits >
template<typename _Keya , typename _Valuea , typename _Alloca , typename _ExtractKeya , typename _Equala , typename _H1a , typename _H2a , typename _Hasha , typename _RehashPolicya , typename _Traitsa , bool _Unique_keysa>

friend struct __detail::_Map_base

friend

Definition at line 295 of file bits/hashtable.h.

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

- bits/hashtable.h