On Thu, Aug 30, 2012 at 10:24 PM, Paul <phshaf...@gmail.com> wrote: > > So one array like- aa[MyKey("abc","def","ghi")] = "my value"; > > and another like- string[] da; da[99]="abc"~","~"def"~","~"ghi"; > or maybe- MyKey[] da; da[99]=MyKey("abc","def","ghi");
The latter, if you group your keys, I think. You can just push the new value at the array's end, as if it was a stack: struct MyKey(string k1,k2,k3); string[MyKey] aa; MyKey[] da; // pushing "value" with key ("abc","def","ghi"): MyKey k = MyKey("abc","def","ghi"); aa[k] = "value"; da ~= k; // append k to da Jonathan's advice of recording the key's index (in the array) with the value is interesting, but then you need a special value in the array to indicate a discarded key. Here the recent thread about Option!T comes to mind... but I don't know what you're trying the achieve, so let's not go into complicated stuff right now. > This thread has been quite helpful already. Thanks to all You're welcome. Note that your need of having a structure which is both associative and ordered is, if not unheard-of, at least somewhat uncommon.