Dinamyc arrays
user1234
user1234 at 12.de
Sun Sep 17 18:58:41 UTC 2023
On Sunday, 17 September 2023 at 17:15:34 UTC, Timofey wrote:
> I`ve just started learning d and have a question.
> What should I write to set dinamyc rectangular array length in
> both dimentions?
> For example, I have declareted an array:
>
> ```d
> int[][] matrix;
> ```
>
> and want set it as n*n matrix.
> Thanks
You can flatten the mat and use operator overloads. Here's a some
basic code to get started:
```d
struct SquaredMat(T)
{
size_t dim;
T[] array;
this(usize dim)
{
this.dim = dim;
array.length = dim * dim;
}
auto opIndex(size_t x, size_t y)
{
return array[x * dim + y];
}
auto opIndexAssign(size_t x, size_t y, T value)
{
array[x * dim + y] = value;
return this;
}
}
```
Those kind of type should already exist in 3rd part native D
libraries, e.g "MIR" has something called "NDSlice" IIRC.
More information about the Digitalmars-d-learn
mailing list