On Monday, 1 February 2016 at 07:42:56 UTC, Namal wrote:
On Monday, 1 February 2016 at 07:41:33 UTC, Namal wrote:
I understand that I cannot pass a variable to the static array like in C++, and have to use dynamic arrays. But how can I set the length for them without using a loop?

I mean std::vector in C++, not array.

I'm not sure I understand well because I know nothing about C++ types, so I'll assume you mean dynamic array.

Dynamic arrays are sized at initialization, resized when needed (when adding new elements) and can also be explicitely sized to some size:

    auto arr = [1, 2];

    arr ~= 3;
    assert(arr == [1, 2, 3]);
    assert(arr.length == 3);

    arr.length = 5;
    assert(arr == [1, 2, 3, 0, 0]);
    assert(arr.length == 5);

Note that new elements are set to the initial value of array elements (here int.init).

You can read more about this behaviour in the documentation: http://dlang.org/spec/arrays.html

Reply via email to