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.

Reply via email to