complement to $

Walter Bright newshound1 at digitalmars.com
Sat May 15 14:33:15 PDT 2010


KennyTM~ wrote:
> On May 16, 10 02:01, Walter Bright wrote:
>> Simen kjaeraas wrote:
>>> Walter Bright <newshound1 at digitalmars.com> wrote:
>>>
>>>> Simen kjaeraas wrote:
>>>>> Walter Bright <newshound1 at digitalmars.com> wrote:
>>>>>
>>>>>> KennyTM~ wrote:
>>>>>>> Why a map type (sorted associative array)'s key must start at zero?
>>>>>>
>>>>>> You can special case the [0..$], or simply use [] to represent the
>>>>>> entire range.
>>>>> Of course, but assume you want the first 15 elements, what do you do?
>>>>>
>>>>
>>>> For a map, does the first 15 elements even make any sense? There is
>>>> no order in a map.
>>>
>>> std::map is ordered. Other data structures might make more sense.
>>>
>>> A weird example would be a trie - slice all from the start
>>> to ['f','o','o'], for instance.
>>
>>
>> If it's ordered, then why doesn't [0..15] make sense to get the first 15
>> elements?
> 
> auto a = new OrderedDict!(int, string);
> a[-3] = "negative three";
> a[-1] = "negative one";
> a[0] = "zero";
> a[3] = "three";
> a[4] = "four";
> assert(a[0] == "zero");
> return a[0..4]; // which slice should it return?

Good question.


More information about the Digitalmars-d mailing list