Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Michael Samanov                      2:550/5068.1515 18 Jan 2001  12:13:48
 To : Alexey Sedykh
 Subject : Re: ?
 -------------------------------------------------------------------------------- 
 
 Hello, Alexey!
 
 At Wed, 17 Jan 01 19:27:24 +0300 Alexey Sedykh wrote:
 
 AS> Можно ли вычислить номеp элемента списка, зная сам элемент? нy напpимеp
 AS> $images[3]="test"; я пишy что-то типа $num=$images[test]; и в $num она
 AS> возвpащает мне его поpядковый номеp в списке, т.е. 3...
 
 Только если ты заведешь параллельный хэш с индексами элементов.
 Примерно так:
 
 my(@images, %images);
 while(...) {
   ...
   push @images, $image;
   $images{$image} = $#images;
 }
 
 Или сканировалку массива (тормознее, но не требует
 дополнительной памяти):
 
 sub arr_index {
   my($arr, $item) = @_;
   for my $i (0..$#$arr) {
     return $i if $item eq $arr->[$i];
   }
 }
 print arr_index(\@images, "test");
 
 Причем, как ты понимаешь, соответствие не будет взаимно
 однозначным из-за, возможно, повторяющихся элементов списка.
 
 А, может, тебе и не нужен список-то? Могобыть, хэшем обойтись
 можно?
 
 Sincerely yours, Michael (mailto:mike@vlink.ru).
 --- ifmail v.2.14
  * Origin: Mike's home (2:550/5068.1515@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 ?   Alexey Sedykh   17 Jan 2001 20:27:24 
 ?   Ivan Frolcov   18 Jan 2001 12:12:28 
 Re: ?   Michael Samanov   18 Jan 2001 12:13:48 
Архивное /ru.perl/7949b0487819.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional