Re: IDL Array Push [message #70407 is a reply to message #70337] |
Wed, 07 April 2010 14:04  |
JDS
Messages: 94 Registered: March 2009
|
Member |
|
|
On Apr 6, 2:23 pm, Aram Panasenco <panasencoa...@gmail.com> wrote:
> On Apr 6, 3:52 am, Jeremy Bailin <astroco...@gmail.com> wrote:
>
>
>
>
>
>> On Apr 5, 1:36 pm, Aram Panasenco <panasencoa...@gmail.com> wrote:
>
>>> On Apr 5, 9:23 am, James <donje...@gmail.com> wrote:
>
>>>> How is this different from concatenating two arrays like [[[array1]],
>>>> [[array2]]]?
>
>>> *facedesk*
>
>>> It's not. I completely forgot about concatenating arrays. Oh well, I
>>> suppose it was good coding practice anyway.
>
>> In my version of PUSH, it concatenates the two arrays if they exist,
>> but creates the first one with the contents of the second if it
>> doesn't. That makes it easy to stick into a loop where you don't know
>> whether the original array will exist at entry (or if you explicitly
>> know that it won't).
>
>> -Jeremy.
>
> Wow, that's a great idea! It makes my code looks so much cleaner.
> Compare:
The only problem with this type of "push" is that it differ
dramatically from similar operators in other languages. For these,
typically extra "space" is pre-allocated at the array ends and used as
needed, intelligently adding more buffer as necessary. In principle
this could be done with IDL, but concatenation or other simple methods
make a full copy of the array each and every time an element is added,
which is costly.
JD
|
|
|