|
SpECTRE
v2026.04.01
|
A hash table with a compile-time specified maximum size and ability to efficiently handle perfect hashes. More...
#include <FixedHashMap.hpp>
Public Types | |
| using | key_type = Key |
| using | mapped_type = ValueType |
| using | value_type = std::pair<const key_type, mapped_type> |
| using | size_type = size_t |
| using | difference_type = ptrdiff_t |
| using | hasher = Hash |
| using | key_equal = KeyEqual |
| using | reference = value_type& |
| using | const_reference = const value_type& |
| using | pointer = value_type* |
| using | const_pointer = const value_type* |
| using | iterator |
| using | const_iterator |
Public Member Functions | |
| FixedHashMap (std::initializer_list< value_type > init) | |
| FixedHashMap (const FixedHashMap &)=default | |
| FixedHashMap & | operator= (const FixedHashMap &other) |
| FixedHashMap (FixedHashMap &&)=default | |
| FixedHashMap & | operator= (FixedHashMap &&other) |
| iterator | begin () |
| const_iterator | begin () const |
| const_iterator | cbegin () const |
| iterator | end () |
| const_iterator | end () const |
| const_iterator | cend () const |
| bool | empty () const |
| size_t | size () const |
| void | clear () |
| iterator | erase (const const_iterator &pos) |
| size_t | erase (const key_type &key) |
| mapped_type & | at (const key_type &key) |
| const mapped_type & | at (const key_type &key) const |
| mapped_type & | operator[] (const key_type &key) |
| size_t | count (const key_type &key) const |
| iterator | find (const key_type &key) |
| const_iterator | find (const key_type &key) const |
| bool | contains (const key_type &key) const |
| Check if key is in the map. | |
| key_equal | key_eq () const |
| Get key equal function object. | |
| hasher | hash_function () const |
| Get hash function object. | |
| void | pup (PUP::er &p) |
| template<bool Assign, class M> | |
| auto | insert_or_assign_impl (key_type &&key, M &&obj) -> std::pair< iterator, bool > |
| template<bool IsInserting> | |
| auto | get_data_entry (const Key &key) -> typename storage_type::iterator |
| std::pair< iterator, bool > | insert (const value_type &value) |
| Inserts the element if it does not exists. | |
| std::pair< iterator, bool > | insert (value_type &&value) |
| Inserts the element if it does not exists. | |
| template<typename... Args> | |
| std::pair< iterator, bool > | emplace (Args &&... args) |
| Inserts the element if it does not exists. | |
| template<class M> | |
| std::pair< iterator, bool > | insert_or_assign (const key_type &key, M &&obj) |
| Inserts the element if it does not exists, otherwise assigns to it the new value. | |
| template<class M> | |
| std::pair< iterator, bool > | insert_or_assign (key_type &&key, M &&obj) |
| Inserts the element if it does not exists, otherwise assigns to it the new value. | |
Friends | |
| template<size_t FMaxSize, class FKey, class FValueType, class FHash, class FKeyEqual> | |
| bool | operator== (const FixedHashMap< FMaxSize, FKey, FValueType, FHash, FKeyEqual > &a, const FixedHashMap< FMaxSize, FKey, FValueType, FHash, FKeyEqual > &b) |
A hash table with a compile-time specified maximum size and ability to efficiently handle perfect hashes.
There are a few requirements on the types passed to FixedHashMap. These are:
The interface is similar to std::unordered_map, so see the documentation for that for details.
| using FixedHashMap< MaxSize, Key, ValueType, Hash, KeyEqual >::const_iterator |
| using FixedHashMap< MaxSize, Key, ValueType, Hash, KeyEqual >::iterator |