作者bxorw (每天保持微笑)
看板Perl
标题[问题] 问一个阵列删除值的问题
时间Sat May 16 21:12:02 2009
这个问题有爬过版...但经由版上的方法却发现,有error,让我百思不得其解。
首先从版上得知若要删除阵列中指定位置的值,可以利用splice的功能。
不过使用这个功能遇到一个问题:
我有一个阵列@a经过第一次条件处理後...
我在处理的过程中纪录了"被处理过的位置"在@b
接着我这麽作...
foreach $num_cd(@b)
{
splice(@a,$num_cd,1);
}
但我却发现...删除的竟然不是我纪录的位置=.=,这是为什麽?感谢<_ _>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.146.203.213
1F:推 LiloHuang:应该是你删除之後 所纪录的位置也相对的都改变了 05/17 01:53
2F:推 LiloHuang:等到下一次要做 splice 时 已经不是正确要删除的位置 05/17 01:54
3F:→ frank1983:可以从靠近尾端的 element 开始删起 05/17 05:02
4F:→ frank1983:splice @a, $_, 1 for sort { $b <=> $a } @b; 05/17 05:03
5F:推 jackieku:也可以用unshift和push组合...遇到需要删掉的index就跳过 05/17 20:21
6F:→ jackieku:push,依照不同情况效能可能会比较好(但也可能比较差) 05/17 20:21
7F:→ jackieku:对不起...上面说错...是shift不是unshift 05/17 20:22