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
..
2022-05-06 13:09:04 +05:30
2022-05-02 16:28:25 +02:00
2022-05-02 16:28:25 +02:00
2022-05-02 16:28:25 +02:00
2022-05-02 16:28:25 +02:00
2022-03-07 21:50:49 +08:00
2022-04-04 19:49:50 +02:00
2022-02-16 08:44:37 -05:00
2022-04-04 19:49:50 +02:00
2022-05-05 11:19:54 +08:00
2022-04-11 12:51:54 +02:00
2022-05-05 11:19:54 +08:00
2022-04-11 12:51:54 +02:00
2022-05-03 12:42:51 -03:00
2022-05-02 13:06:36 -03:00
2022-02-16 08:44:37 -05:00
2022-04-04 19:49:50 +02:00
2022-05-04 22:18:41 +08:00
2022-05-04 22:18:41 +08:00
2022-02-16 08:44:37 -05:00
2022-04-04 19:49:50 +02:00
2022-02-15 14:54:15 +01:00
2022-02-15 14:54:15 +01:00
2022-04-20 22:20:31 -05:00
2022-04-20 22:20:31 -05:00
2022-02-14 14:16:24 +01:00
2022-04-04 19:49:50 +02:00
2022-05-06 00:27:10 +02:00
2022-05-02 16:28:25 +02:00
2022-04-04 21:49:51 +02:00
2022-04-04 19:49:50 +02:00
2022-02-14 14:16:24 +01:00
2022-04-04 19:49:50 +02:00
2022-05-06 00:27:10 +02:00
2022-04-04 19:49:50 +02:00
2022-02-16 08:44:37 -05:00
2022-04-04 19:49:50 +02:00
2022-02-16 08:44:37 -05:00
2022-04-04 19:49:50 +02:00
2022-02-16 08:44:37 -05:00
2022-04-04 19:49:50 +02:00
2022-04-23 11:16:18 -05:00
2022-04-04 19:49:50 +02:00
2022-01-03 21:27:34 +01:00
2022-01-03 21:27:34 +01:00
2022-05-03 01:43:50 +02:00
2022-05-03 01:43:50 +02:00
2022-02-16 08:44:37 -05:00
2022-02-15 14:54:15 +01:00
2022-03-16 11:16:19 +02:00
2022-04-20 10:34:00 +03:00
2022-04-04 19:49:50 +02:00
2022-04-20 10:34:00 +03:00
2022-04-20 10:34:00 +03:00
2022-03-05 16:43:38 +01:00
2022-04-04 19:49:50 +02:00
2022-04-20 15:41:30 -05:00
2022-04-04 19:49:50 +02:00
2022-03-17 10:32:54 -05:00
2022-03-17 10:32:54 -05:00
2022-04-12 08:30:24 -05:00
2022-04-12 08:30:24 -05:00
2022-05-03 01:43:50 +02:00
2022-04-04 19:49:50 +02:00
2022-03-05 12:32:38 +08:00
2022-04-04 19:49:50 +02:00
2022-04-04 21:49:51 +02:00
2022-04-04 19:49:50 +02:00
2022-04-06 14:34:37 +03:00
2022-02-15 14:54:15 +01:00
2022-05-04 23:18:08 +02:00
2022-04-04 19:49:50 +02:00
2022-03-31 18:02:18 +02:00
2022-04-04 19:49:50 +02:00
2022-03-24 15:28:19 -05:00
2022-05-02 16:28:25 +02:00
2022-05-03 09:37:47 -05:00
2022-05-02 16:28:25 +02:00
2022-05-03 01:43:50 +02:00
2022-04-04 19:49:50 +02:00
2022-05-03 09:37:47 -05:00
2022-05-12 11:21:29 +02:00
2022-05-06 00:27:10 +02:00
2022-05-02 16:28:25 +02:00
2022-02-14 14:16:24 +01:00
2022-04-04 19:49:50 +02:00
2022-04-22 12:08:46 +03:00
2022-04-04 19:49:50 +02:00
2022-05-03 01:43:50 +02:00
2022-02-08 10:08:34 +01:00
2022-02-14 14:16:24 +01:00
2022-05-02 16:28:25 +02:00
2022-05-03 09:37:47 -05:00
2022-05-02 16:28:25 +02:00
2022-04-04 21:49:51 +02:00
2022-04-04 19:49:50 +02:00
2022-04-29 08:02:39 -05:00
2022-05-02 16:28:25 +02:00
2022-05-03 09:37:47 -05:00
2022-05-02 16:28:25 +02:00
2022-04-26 15:14:35 -05:00
2022-04-26 15:14:35 -05:00
2022-03-30 20:12:26 +02:00
2022-04-04 19:49:50 +02:00
2022-05-03 01:43:50 +02:00
2022-04-04 19:49:50 +02:00
2022-02-16 08:44:37 -05:00
2022-04-04 19:49:50 +02:00
2022-05-12 11:21:29 +02:00
2022-05-03 01:43:50 +02:00
2022-05-03 01:43:50 +02:00
2022-05-03 01:43:50 +02:00
2021-05-07 18:06:17 +02:00
2022-04-24 17:26:29 +02:00
2022-05-02 16:28:25 +02:00
2022-02-16 13:03:05 -05:00
2022-04-04 19:49:50 +02:00
2022-02-14 14:16:24 +01:00
2022-04-04 19:49:50 +02:00
2022-04-27 11:06:42 +02:00
2022-05-02 16:28:25 +02:00
2022-02-14 14:16:24 +01:00
2022-04-04 19:49:50 +02:00
2022-03-04 01:17:35 -06:00
2022-04-04 19:49:50 +02:00
2022-05-03 01:43:50 +02:00
2022-05-02 16:28:25 +02:00
2022-02-15 14:54:15 +01:00
2022-04-04 19:49:50 +02:00
2022-02-15 14:54:15 +01:00
2022-02-15 14:54:15 +01:00
2022-02-16 13:03:05 -05:00
2022-04-04 19:49:50 +02:00
2022-05-03 01:43:50 +02:00
2022-05-03 01:43:50 +02:00
2022-02-16 13:03:05 -05:00
2022-04-04 19:49:50 +02:00
2022-04-11 23:02:39 -05:00
2022-02-15 14:54:15 +01:00
2022-02-16 13:03:05 -05:00
2022-04-04 19:49:50 +02:00
2022-05-08 02:49:20 +02:00
2022-05-02 16:28:25 +02:00
2022-05-12 11:21:29 +02:00
2022-05-12 11:21:29 +02:00
2022-02-16 13:03:05 -05:00
2022-04-04 19:49:50 +02:00
2022-03-03 21:49:58 -03:00
2022-04-04 19:49:50 +02:00
2022-05-09 21:34:34 +03:00
2022-05-03 01:43:50 +02:00
2022-02-16 13:03:05 -05:00
2022-04-04 19:49:50 +02:00