string[int[][]] ??

Steven Schveighoffer schveiguy at yahoo.com
Thu Jul 22 14:05:35 PDT 2010


On Thu, 22 Jul 2010 16:57:59 -0400, dcoder <dcoder at devenull.dev> wrote:

> == Quote from dcoder (dcoder at devnull.com)'s article
>> Hello.  I want to use associative arrays, but have a 2-d int array as my
>> index.  so something like:
>> string[int[][]] chessboard;
>> chessboard[[0,0]] = "Rook";
>> chessboard[[0,1]] = "Knight";
>> Is this possible?  I can declare chessboard without any compiler  
>> complaints,
>> but I haven't figured out how to assign anything to it.
>> Any help would be appreciated.
>> thanks!
>> dcoder
>
>
> Ooops, I just realized that int[someX][someY] needs to evaluate to an  
> int, so that
> my statement above doesn't make any sense.
>
> Still, is there anyway I can keep the spirit of a double index to a  
> chessboard
> without having to create a Coordinate object and define relational  
> orderings?

This is what I think you should use:

string[int[2]]

Although, I'm not sure if you can then do something like:

chessboard[[0,1]] = "Rook";

as the [0, 1] is typed as a dynamic array.  If it does work, it may  
actually create [0,1] on the heap and then pass it as an int[2], which  
would suck.

Or, if you know how big your chessboard is (8x8 isn't a lot of memory),  
then:

string[8][8] chessboard;

is pretty straightforward :)

-Steve


More information about the Digitalmars-d-learn mailing list