Implementation of std::unordered_map. Plus de détails...
#include <arcane/utils/HashTableMap2.h>
Classes | |
| class | const_iterator |
| class | iterator |
Types publics | |
| using | htype = HashTableMap2<KeyT, ValueT, HashT, EqT> |
| using | value_type = std::pair<KeyT, ValueT> |
| using | key_type = KeyT |
| using | mapped_type = ValueT |
| using | hasher = HashT |
| using | key_equal = EqT |
Types publics hérités de Arcane::impl::HashTableMap2Base | |
| using | size_type = uint32_t |
Fonctions membres publiques | |
| void | init (size_type bucket, float mlf=EMH_DEFAULT_LOAD_FACTOR) |
| HashTableMap2 (size_type bucket=2, float mlf=EMH_DEFAULT_LOAD_FACTOR) | |
| HashTableMap2 (const HashTableMap2 &rhs) | |
| HashTableMap2 (HashTableMap2 &&rhs) noexcept | |
| HashTableMap2 (std::initializer_list< value_type > ilist) | |
| template<class InputIt> | |
| HashTableMap2 (InputIt first, InputIt last, size_type bucket_count=4) | |
| HashTableMap2 & | operator= (const HashTableMap2 &rhs) |
| HashTableMap2 & | operator= (HashTableMap2 &&rhs) noexcept |
| template<typename Con> | |
| bool | operator== (const Con &rhs) const |
| template<typename Con> | |
| bool | operator!= (const Con &rhs) const |
| void | clone (const HashTableMap2 &rhs) |
| void | swap (HashTableMap2 &rhs) |
| iterator | first () const |
| iterator | last () const |
| value_type & | front () |
| const value_type & | front () const |
| value_type & | back () |
| const value_type & | back () const |
| void | pop_front () |
| void | pop_back () |
| iterator | begin () |
| const_iterator | cbegin () const |
| const_iterator | begin () const |
| iterator | end () |
| const_iterator | cend () const |
| const_iterator | end () const |
| const value_type * | values () const |
| const Index * | index () const |
| size_type | size () const |
| bool | empty () const |
| size_type | bucket_count () const |
| double | load_factor () const |
| Returns average number of elements per bucket. | |
| HashT & | hash_function () const |
| EqT & | key_eq () const |
| void | max_load_factor (double mlf) |
| constexpr double | max_load_factor () const |
| constexpr size_type | max_size () const |
| constexpr size_type | max_bucket_count () const |
| template<typename K = KeyT> | |
| iterator | find (const K &key) noexcept |
| template<typename K = KeyT> | |
| const_iterator | find (const K &key) const noexcept |
| template<typename K = KeyT> | |
| ValueT & | at (const K &key) |
| template<typename K = KeyT> | |
| const ValueT & | at (const K &key) const |
| const ValueT & | index (const uint32_t index) const |
| ValueT & | index (const uint32_t index) |
| template<typename K = KeyT> | |
| bool | contains (const K &key) const noexcept |
| template<typename K = KeyT> | |
| size_type | count (const K &key) const noexcept |
| template<typename K = KeyT> | |
| std::pair< iterator, iterator > | equal_range (const K &key) |
| void | merge (HashTableMap2 &rhs) |
| std::pair< iterator, bool > | add (const KeyT &key, const ValueT &value) |
| std::pair< iterator, bool > | insert (const value_type &p) |
| std::pair< iterator, bool > | insert (value_type &&p) |
| void | insert (std::initializer_list< value_type > ilist) |
| template<typename Iter> | |
| void | insert (Iter first, Iter last) |
| template<class... Args> | |
| std::pair< iterator, bool > | emplace (Args &&... args) noexcept |
| template<class... Args> | |
| iterator | emplace_hint (const_iterator hint, Args &&... args) |
| template<class... Args> | |
| std::pair< iterator, bool > | try_emplace (const KeyT &k, Args &&... args) |
| template<class... Args> | |
| std::pair< iterator, bool > | try_emplace (KeyT &&k, Args &&... args) |
| template<class... Args> | |
| size_type | emplace_unique (Args &&... args) |
| std::pair< iterator, bool > | insert_or_assign (const KeyT &key, ValueT &&val) |
| std::pair< iterator, bool > | insert_or_assign (KeyT &&key, ValueT &&val) |
| ValueT | set_get (const KeyT &key, const ValueT &val) |
| Return the old value or ValueT() if it didn't exist. | |
| ValueT & | operator[] (const KeyT &key) noexcept |
| Like std::map<KeyT, ValueT>::operator[]. | |
| ValueT & | operator[] (KeyT &&key) noexcept |
| size_type | erase (const KeyT &key) noexcept |
| iterator | erase (const const_iterator &cit) noexcept |
| iterator | erase (const_iterator first, const_iterator last) noexcept |
| template<typename Pred> | |
| size_type | erase_if (Pred pred) |
| void | clear () noexcept |
| Remove all elements, keeping full capacity. | |
| void | shrink_to_fit (const float min_factor=EMH_DEFAULT_LOAD_FACTOR/4) |
| bool | reserve (uint64_t num_elems, bool force) |
| Make room for this many elements. | |
| bool | reserve (size_type required_buckets) noexcept |
| void | rehash (uint64_t required_buckets) |
Fonctions membres publiques statiques | |
| static constexpr bool | is_triviall_destructable () |
| static constexpr bool | is_copy_trivially () |
Attributs publics statiques | |
| static constexpr size_type | INACTIVE = 0xFFFFFFFF |
| static constexpr size_type | END = 0xFFFFFFFF |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arcane::impl::HashTableMap2Base | |
| void | _allocIndex (size_type num_buckets) |
| void | _freeIndex () |
| void | _doSwap (HashTableMap2Base &rhs) |
| void | _doClone (const HashTableMap2Base &rhs) |
Attributs protégés hérités de Arcane::impl::HashTableMap2Base | |
| Index * | m_index = nullptr |
| uint32_t | m_mlf = 0 |
| size_type | m_mask = 0 |
| size_type | m_num_buckets = 0 |
| size_type | m_num_filled = 0 |
| size_type | m_last = 0 |
| size_type | m_etail = 0 |
| IMemoryAllocator * | m_memory_allocator = _defaultAllocator() |
Attributs protégés statiques hérités de Arcane::impl::HashTableMap2Base | |
| static constexpr size_type | EAD = 2 |
Implementation of std::unordered_map.
Définition à la ligne 166 du fichier HashTableMap2.h.
| using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::hasher = HashT |
Définition à la ligne 179 du fichier HashTableMap2.h.
| using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::htype = HashTableMap2<KeyT, ValueT, HashT, EqT> |
Définition à la ligne 175 du fichier HashTableMap2.h.
| using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::key_equal = EqT |
Définition à la ligne 180 du fichier HashTableMap2.h.
| using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::key_type = KeyT |
Définition à la ligne 177 du fichier HashTableMap2.h.
| using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::mapped_type = ValueT |
Définition à la ligne 178 du fichier HashTableMap2.h.
| using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::value_type = std::pair<KeyT, ValueT> |
Définition à la ligne 176 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 322 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 327 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 341 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 347 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 355 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 418 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 652 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 586 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 594 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 469 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 473 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 487 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 495 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 530 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 491 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 504 du fichier HashTableMap2.h.
|
inlinenoexcept |
Remove all elements, keeping full capacity.
Définition à la ligne 851 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 425 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 612 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 618 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 685 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 693 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 715 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 526 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 500 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 508 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 624 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 790 du fichier HashTableMap2.h.
|
inlinenoexcept |
Erase an element from the hash table. return 0 if element was not found
Définition à la ligne 777 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 800 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 820 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 580 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 574 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 452 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 461 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 465 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 541 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 517 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 606 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 601 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 311 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 657 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 677 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 669 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 663 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 720 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 724 du fichier HashTableMap2.h.
|
inlinestaticconstexpr |
Définition à la ligne 841 du fichier HashTableMap2.h.
|
inlinestaticconstexpr |
Définition à la ligne 832 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 545 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 456 du fichier HashTableMap2.h.
|
inline |
Returns average number of elements per bucket.
Définition à la ligne 536 du fichier HashTableMap2.h.
|
inlineconstexpr |
Définition à la ligne 567 du fichier HashTableMap2.h.
|
inlineconstexpr |
Définition à la ligne 559 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 550 du fichier HashTableMap2.h.
|
inlineconstexpr |
Définition à la ligne 563 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 633 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 413 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 362 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 389 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 399 du fichier HashTableMap2.h.
|
inlinenoexcept |
Like std::map<KeyT, ValueT>::operator[].
Définition à la ligne 748 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 762 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 482 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 478 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 906 du fichier HashTableMap2.h.
|
inlinenoexcept |
Définition à la ligne 883 du fichier HashTableMap2.h.
|
inline |
Make room for this many elements.
Définition à la ligne 871 du fichier HashTableMap2.h.
|
inline |
Return the old value or ValueT() if it didn't exist.
Définition à la ligne 730 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 863 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 522 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 443 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 701 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 708 du fichier HashTableMap2.h.
|
inline |
Définition à la ligne 513 du fichier HashTableMap2.h.
|
staticconstexpr |
Définition à la ligne 183 du fichier HashTableMap2.h.
|
staticconstexpr |
Définition à la ligne 182 du fichier HashTableMap2.h.