godot/core/templates
reduz 8b7c7f5a75 Add a new HashMap implementation
Adds a new, cleaned up, HashMap implementation.

* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
  for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).

This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
2022-05-12 11:21:29 +02:00
..
SCsub Reorganized core/ directory, it was too fatty already 2020-11-07 20:17:12 -03:00
bin_sorted_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
command_queue_mt.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
command_queue_mt.h Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
cowdata.h Add search methods for packed arrays 2022-05-07 20:16:11 +08:00
hash_map.h Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
hashfuncs.h Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
list.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
local_vector.h Add list initialization support for Vector & LocalVector 2022-01-05 20:42:09 +08:00
lru.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
map.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
oa_hash_map.h Add mutable OAHashMap::lookup_ptr function to fix mutability. 2022-04-22 09:20:15 +02:00
paged_allocator.h Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
paged_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
pair.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
pass_func.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
pooled_list.h BVH - Sync BVH with 3.x 2022-02-04 16:51:21 +00:00
rid.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
rid_owner.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
rid_owner.h Remove RID_Owner.get_rid_by_index 2022-02-05 11:59:34 +01:00
ring_buffer.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
safe_list.h add SafeList destructor which calls maybe_cleanup() to prevent mem leak 2022-04-08 09:50:49 -04:00
safe_refcount.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
search_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
self_list.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
set.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
simple_type.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
sort_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
thread_work_pool.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
thread_work_pool.h Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
vector.h Add search methods for packed arrays 2022-05-07 20:16:11 +08:00
vmap.h Make VMap::find_nearest return -1 when empty 2022-02-16 16:12:30 +08:00
vset.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00