Array types and index types

Liam McGillivray yoshi.pit.link.mario at gmail.com
Wed Feb 28 03:00:55 UTC 2024


In D, it appears that dynamic arrays (at least by default) use a 
ulong as their key type. They are declared like this:
```
string[] dynamicArray;
```

I imagine that using a 64-bit value as the key would be slower 
than using 32 bits or 16 bits, and 64 bits is way overkill for 
nearly everything. However, if I declare the array as 
`string[uint] myArray;` or `string[ushort] myArray`, it's treated 
as an associative array. This means that I don't get to do the 
things I want to do with a dynamic array, such as appending.

So I have some questions:

Is there a way to declare a dynamic array with a uint, ushort, or 
ubyte key?

If there was, would it really be faster?

Is an associative array with a ushort key faster than a dynamic 
array with a ulong key?


More information about the Digitalmars-d-learn mailing list