in reply to Re^6: Re-orderable keyed access structure?
in thread Re-orderable keyed access structure?

I don't understand your objection.

sub swap_elements_by_idx { my ( $i, $j ) = @_; @actual_data[ $i, $j ] = @actual_data[ $j, $i ]; @key_for{ $i, $j } = @key_for{ $j, $i }; # note this is a hash now @index_of{ @key_for[ $i, $j ] } = @index_of{ @key_for[ $j, $i ] }; }

And it doesn't work any differently for multi-element atomic operations.

Makeshifts last the longest.

Replies are listed 'Best First'.
Re^8: Re-orderable keyed access structure?
by BrowserUk (Patriarch) on Aug 14, 2004 at 20:53 UTC

    The objection is that it doesn't do what I need it to. Taking an element from the middle of the stack and moving it to the top or the bottom.

    push @array, splice @array, $itemToMove, 1;

    Doing this using swap_elements_by_idx() would require iterating over the length of both @actual_data and @key_for arrays. Either of the working schemes is better than this as they only iterate one structure not two.


    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "Think for yourself!" - Abigail
    "Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon