Use the given allocator for allocations.
Constructs an HashMap with an initial bucket count of bucketCount. bucketCount must be a power of two.
Constructs an HashMap with an initial bucket count of bucketCount. bucketCount must be a power of two.
A destructor is present on this object, but not explicitly documented in the source.
A postblit is present on this object, but not explicitly documented in the source.
Removes all items from the map
Gets the value for the given key, or returns defaultValue if the given key is not present.
If the given key does not exist in the HashMap, adds it with the value defaultValue.
Support for foreach(key, value; aa) { ... } syntax;
Supports key in aa syntax.
Supports aa[key] syntax.
Supports aakey = value; syntax.
Removes the value associated with the given key
the key type
the value type
the allocator type to use. Defaults to Mallocator
the hash function to use on the keys
true if the container should support holding references to GC-allocated memory.
import std.uuid : randomUUID; import std.range.primitives : walkLength; auto hm = HashMap!(string, int)(16); assert (hm.length == 0); assert (!hm.remove("abc")); hm["answer"] = 42; assert (hm.length == 1); assert ("answer" in hm); assert (hm.containsKey("answer")); hm.remove("answer"); assert (hm.length == 0); assert ("answer" !in hm); assert (hm.get("answer", 1000) == 1000); assert (!hm.containsKey("answer")); hm["one"] = 1; hm["one"] = 1; assert (hm.length == 1); assert (hm["one"] == 1); hm["one"] = 2; assert(hm["one"] == 2); foreach (i; 0 .. 1000) { hm[randomUUID().toString] = i; } assert (hm.length == 1001); assert (hm.keys().length == hm.length); assert (hm.values().length == hm.length); () @nogc { assert (hm.byKey().walkLength == hm.length); assert (hm.byValue().walkLength == hm.length); assert (hm[].walkLength == hm.length); assert (hm.byKeyValue().walkLength == hm.length); }(); foreach (v; hm) {} auto hm2 = HashMap!(char, char)(4); hm2['a'] = 'a'; HashMap!(int, int) hm3; assert (hm3.get(100, 20) == 20); hm3[100] = 1; assert (hm3.get(100, 20) == 1); auto pValue = 100 in hm3; assert(*pValue == 1);
Associative array / hash map.