On 8/6/14, 2:59 PM, H. S. Teoh via Digitalmars-d-learn wrote:
On Wed, Aug 06, 2014 at 05:54:23PM +0000, Patrick via Digitalmars-d-learn wrote:
I know that there is no prescribed order that the .values array will
be sorted in, however I'm curious if the order is deterministic based
on keys.

If I have two associative arrays with strings for keys and ints for
values and they each have an identical set of keys, would the .values
property return the values in the same order?

In the current implementation, yes. But I think it's a bad idea to rely
on that, since a future implementation might no longer do this. (E.g.,
if we use a different hash collision resolution algorithm that is
sensitive to insertion order.)

It is probably safest to make an array of keys with .keys, and sort the
array in the order you want.


T


Why is a dictionary something built-in the language? Can't it be some standard library class/struct with syntax sugar for creation? All of these questions about associative arrays wouldn't exist if the source code for these operations was available.

(it's probably available, but buried in some C++ code, I guess, on in dmd?)

Reply via email to