A slice consisting of non-consecutive elements of an array?
vit
vit at vit.vit
Wed Jan 12 06:58:47 UTC 2022
On Wednesday, 12 January 2022 at 06:43:40 UTC, forkit wrote:
> On Wednesday, 12 January 2022 at 06:16:49 UTC, vit wrote:
>>
>> Yes std.algorithm : filter.
>>
>> ```d
>> import std.stdio : writeln;
>> import std.algorithm : filter;
>>
>> void main()@safe{
>> auto a = ["one", "one", "two", "one", "two", "one",
>> "one", "two"];
>>
>> writeln(a);
>> writeln(a.filter!(x => x == "one"));
>> }
>> ```
>
> Interesting. I looked it up.. it says "returns a new range..."
>
> Does that mean what I think it means (i.e. a new allocation
> takes place) ?
No, it is only view to old slice:
```d
void main()@safe{
auto a = ["one", "one", "two", "one", "two", "one", "one",
"two"];
auto b = (()@nogc => a.filter!(x => x == "one"))();
writeln(a);
writeln(b);
}
```
More information about the Digitalmars-d-learn
mailing list