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