Thread Über viele(!) Boolesche Werte iterieren: Array oder Bit::Vector oder was? (14 answers)
Opened by flowdy at 2012-08-03 22:56

topeg
 2012-08-04 15:34
#160619 #160619
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Ich denke so sollte der Code aussehen.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
    # Sparen wir uns die Strukturdaten des Arrays und von 999.999 Skalaren
    # Vorschlag von topeg++, angeglichen. $bit_data-Initialisierung oben.
    strng => sub {
                 my ($last,@cache)=(0);
                 for ( my $i = $start; $i <= $end; $i++ ) {
                     my $v = substr($str_data,$i,1);
                     if ($v xor $last // !$v) { push @cache, $v ? 1 : -1 }
                     else { $cache[-1] += $v } 
                     $last = $v;
                 }
             },  

Da war ein wenig was durcheinander geraten :-)

Edit: $last muss vordefiniert sein sonst wird xor mit undef gemacht -> resultiert in einer Warnung.
Last edited: 2012-08-04 15:38:03 +0200 (CEST)

View full thread Über viele(!) Boolesche Werte iterieren: Array oder Bit::Vector oder was?