1

タイトルのように、2Dベクトルの最後から2番目の要素までの反復を作成したいと思います。私はするために書いた:

for my $i (0..$#vector) {
    for my $j (1..${$vector[$i]}[-2]) {
        ....
    }
}

しかし、それは機能しません。なんで?

4

1 に答える 1

1

これ:

${$vector[$i]}[-2]

最後から2番目の要素のを示します。

代わりに、以下を使用してください。

for my $j (1..$#{$vector[$i]}-1) {

最後の要素のインデックスから1を引いたもの。

アルゴリズムで実際にインデックスが必要ない場合は、インデックスでforはなく配列要素で使用することを検討してください。

for my $outer_element (@vector) {
    for my $inner_element (@{$outer_element}[1..$#$outer_element-1]) {
        ....
    }
}
于 2013-03-27T10:09:44.370 に答える