www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - How to get uniq to return an array?

reply PumpkinCake <sdfsdfs dfads.com> writes:
I'm trying to strip repeated values out of an int array using 
uniq. It's returning a UniqResult which can't be accessed like an 
array... how can I get it to return an array, or cast whatever it 
is returning to be an array?
Jul 04
next sibling parent cym13 <cpicard openmailbox.org> writes:
On Tuesday, 4 July 2017 at 11:00:05 UTC, PumpkinCake wrote:
 I'm trying to strip repeated values out of an int array using 
 uniq. It's returning a UniqResult which can't be accessed like 
 an array... how can I get it to return an array, or cast 
 whatever it is returning to be an array?
Most functions are lazy in order to allow more centrol over the memory. This means the actual value is computed only when needed. To use an array import std.array and do [1, 1, 2].uniq.array; for example. This will allocate a new array to keep the result.
Jul 04
prev sibling parent maarten van damme via Digitalmars-d-learn writes:
have you tried std.range's .array?

2017-07-04 13:00 GMT+02:00 PumpkinCake via Digitalmars-d-learn <
digitalmars-d-learn puremagic.com>:

 I'm trying to strip repeated values out of an int array using uniq. It's
 returning a UniqResult which can't be accessed like an array... how can I
 get it to return an array, or cast whatever it is returning to be an array?
Jul 04