Thread overview |
---|
March 31, 2006 what does array.reverse really does? | ||||
---|---|---|---|---|
| ||||
I am trying to get rid of the first item of an array, so I am trying to figure it out what is the best way. Right I I thought of this, char[][] a; a[0] = "a"; a[1] = "b"; a[2] = "c"; a[3] = "d"; so if I want to get rid of the first one, I do a = a.reverse a.length = a.length - 1; a = a.reverse; But now I am thinking that what if the array is huge. So, what does array.reverse really does? thanks, josé |
March 31, 2006 Re: what does array.reverse really does? | ||||
---|---|---|---|---|
| ||||
Posted in reply to jicman | jicman wrote:
> I am trying to get rid of the first item of an array, so I am trying to figure it out what is the best way. Right I I thought of this,
>
> char[][] a;
> a[0] = "a";
> a[1] = "b";
> a[2] = "c";
> a[3] = "d";
>
> so if I want to get rid of the first one, I do
>
> a = a.reverse
> a.length = a.length - 1;
> a = a.reverse;
>
> But now I am thinking that what if the array is huge. So, what does array.reverse really does?
>
> thanks,
>
> josé
>
>
For one thing, it does it in-place, so you can just "a.reverse;" instead of "a = a.reverse;".
For another, to get rid of the first array element, I suggest "a = a[1..$]", which I would expect to be faster.
As to your question, I don't really know. Have a look at dmd\src\phobos\internal\adi.d, which has the code.
|
March 31, 2006 Re: what does array.reverse really does? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Deewiant | Deewiant says... > >jicman wrote: >> I am trying to get rid of the first item of an array, so I am trying to figure it out what is the best way. Right I I thought of this, >> >> char[][] a; >> a[0] = "a"; >> a[1] = "b"; >> a[2] = "c"; >> a[3] = "d"; >> >> so if I want to get rid of the first one, I do >> >> a = a.reverse >> a.length = a.length - 1; >> a = a.reverse; >> >> But now I am thinking that what if the array is huge. So, what does array.reverse really does? >> >> thanks, >> >> josé >> >> > >For one thing, it does it in-place, so you can just "a.reverse;" instead of "a = a.reverse;". > >For another, to get rid of the first array element, I suggest "a = a[1..$]", which I would expect to be faster. Yeah... This one would be much faster... :-) I had forgotten about this. Gosh, and I even used it a few months back... Read The Great Manual. :-) Thanks. >As to your question, I don't really know. Have a look at dmd\src\phobos\internal\adi.d, which has the code. |
March 31, 2006 Re: what does array.reverse really does? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Deewiant | In article <e0jrkd$2ou$1@digitaldaemon.com>, Deewiant says... >For another, to get rid of the first array element, I suggest "a = a[1..$]", which I would expect to be faster. > watch out for this though int[] a = [1, 2, ..stuff...] int[] b = a; b = b[1..$]; assert(b[0] == a[0]); //fails because only where b points to is changed. somthing like this is needed to change the contents foreach(int i, int j; a[1..$]) b[i] = j; |
Copyright © 1999-2021 by the D Language Foundation