Circular Buffer
Andrea Fontana
nospam at example.com
Tue Feb 11 08:43:17 PST 2014
On Tuesday, 11 February 2014 at 16:30:42 UTC, Rene Zwanenburg
wrote:
> On Tuesday, 11 February 2014 at 16:26:06 UTC, Rene Zwanenburg
> wrote:
>> On Tuesday, 11 February 2014 at 03:10:02 UTC, Jonathan Dunlap
>> wrote:
>>> Wow! This is GREAT stuff. My use-case is slightly more
>>> complex, and I'm not sure how to best apply this knowledge.
>>> The retro reverses the array which is problematic in itself
>>> as well as losing the starting index location. I have an
>>> array that I'd like to elegantly "rotate". Best way I can
>>> show this is by example of an imaginary rotate function:
>>>
>>> auto data = [1,2,3];
>>> assert( data.cycle.rotate(2) == [3,1,2] );
>>> assert( data.cycle.rotate(-2) == [2,3,1] );
>>>
>>> Perhaps what I'm doing is too complex requires me making my
>>> own iterator or something. In my quest of writing readable
>>> efficient code, I'm wondering what's the best route here.
>>> Thanks :)
>>
>> Perhaps something like this?
>> http://dpaste.dzfl.pl/d4b82b0b5cba
>
> Wait, we can avoid creating that closure and eliminate the map.
> This should be a bit faster and not use the GC:
>
> http://dpaste.dzfl.pl/78c65eacfeb1
Why not drop and take?
http://dpaste.dzfl.pl/0649b809c81e
More information about the Digitalmars-d-learn
mailing list