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.