|
| | HashMap (ice::Allocator &alloc) noexcept |
| | ~HashMap () noexcept |
| | HashMap (HashMap &&other) noexcept |
| | HashMap (HashMap const &other) noexcept |
| auto | operator= (HashMap &&other) noexcept -> HashMap & |
| auto | operator= (HashMap const &other) noexcept -> HashMap & |
| constexpr auto | size () const noexcept -> SizeType |
| template<typename Self> |
| constexpr auto | find (this Self &&self, KeyType key) noexcept -> ice::container::ValuePtr< Self > |
| template<typename Self> |
| constexpr bool | remove (this Self &self, KeyType key) noexcept |
| template<typename Self, typename InValueType = Type> |
| constexpr auto | store (this Self &self, KeyType key, InValueType &&in_value) noexcept -> ice::container::ValueRef< Self > |
| template<typename Self> |
| constexpr auto | values (this Self &&self) noexcept -> ice::container::SpanType< Self > |
| constexpr auto | capacity () const noexcept -> SizeType |
| constexpr void | set_capacity (ice::ncount new_capacity) noexcept |
| constexpr void | clear () noexcept |
| template<typename Self> |
| constexpr auto | begin (this Self &&self) noexcept -> ice::container::Iterator< Self > |
| template<typename Self> |
| constexpr auto | end (this Self &&self) noexcept -> ice::container::Iterator< Self > |
| constexpr auto | memory_view () noexcept -> ice::Memory |
| constexpr auto | entries_memory_view () noexcept -> ice::Memory |
| constexpr auto | values_data_view () const noexcept -> ice::Data |
| constexpr auto | entries_data_view () const noexcept -> ice::Data |
template<ice::concepts::AssociativeResizableContainer Self, ice::concepts::HashableKeyType KeyType, typename InValueType = typename std::remove_reference_t<Self>::ValueType>
requires (std::convertible_to<InValueType, typename Self::ValueType>) |
| auto | set (this Self &self, KeyType const &key, InValueType &&in_value) noexcept -> ice::container::ValueRef< Self > |
template<ice::concepts::AssociativeResizableContainer Self, ice::concepts::HashableKeyType KeyType, typename InValueType = typename std::remove_reference_t<Self>::ValueType>
requires (std::convertible_to<InValueType, typename Self::ValueType>) |
| void | set_if_missing (this Self &self, KeyType const &key, InValueType &&in_value) noexcept |
| template<ice::concepts::AssociativeContainer Self, ice::concepts::HashableKeyType KeyType, typename InValueType = typename std::remove_reference_t<Self>::ValueType> |
| auto | get_or_set (this Self &&self, KeyType const &key, InValueType &&in_value) noexcept -> ice::container::ValueRef< Self > |
| template<ice::concepts::AssociativeContainer Self, ice::concepts::HashableKeyType KeyType> |
| bool | remove (this Self &&self, KeyType const &key) noexcept |
| template<ice::concepts::AssociativeContainer Self, ice::concepts::HashableKeyType KeyType> |
| bool | has (this Self const &self, KeyType const &key) noexcept |
| template<ice::concepts::AssociativeContainer Self, ice::concepts::HashableKeyType KeyType> |
| bool | missing (this Self const &self, KeyType const &key) noexcept |
| template<ice::concepts::AssociativeContainer Self, ice::concepts::HashableKeyType KeyType, typename InValueType = typename std::remove_reference_t<Self>::ValueType> |
| auto | get (this Self const &self, KeyType const &key, InValueType const &fallback_value) noexcept -> ice::container::ValueRef< Self const > |
| template<ice::concepts::AssociativeContainer Self, ice::concepts::HashableKeyType KeyType> |
| auto | try_get (this Self &&self, KeyType const &key) noexcept -> ice::container::ValuePtr< Self > |
| template<ice::concepts::Container Self> |
| constexpr bool | is_empty (this Self const &self) noexcept |
| template<ice::concepts::Container Self> |
| constexpr bool | not_empty (this Self const &self) noexcept |
| template<ice::concepts::ResizableContainer Self> |
| constexpr bool | is_full (this Self const &self) noexcept |
| template<ice::concepts::ResizableContainer Self> |
| constexpr bool | not_full (this Self const &self) noexcept |
| template<ice::concepts::ResizableContainer Self> |
| constexpr void | reserve (this Self &self, ice::ncount min_capacity) noexcept |
| template<ice::concepts::ResizableContainer Self> |
| constexpr void | grow (this Self &self, ice::ncount min_capacity=ice::ncount_none) noexcept |
| template<ice::concepts::ResizableContainer Self> |
| constexpr void | shrink (this Self &self) noexcept |
template<typename Type,
ice::ContainerLogic Logic = ice::Constant_DefaultContainerLogic<Type>>
struct ice::HashMap< Type, Logic >
A Map container designed for storing values using hashed values.
- Note
- This implementation only allows u64 keys but provides some utility to calculate hashes from well-known engine types like ice::StringID.
Manages single block of memory big enough to hold all data. The implementation seperates the storage of values and internal data into different blocks allowing to access values separately as continous data.
- Template Parameters
-
| Logic | The operation logic used during memory operations for the given type. This value can be forced by the user for specific behavior requirements. |