The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Вычитание массивов"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Вычитание массивов"
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 31-Июл-03, 11:12  (MSK)
Привет!
Подскажите, как можно в Перле вычесть массив из массива?
Имеется два массива, больший и меньший. Нужно найти все записи в большем массиве, которые отсутствуют в меньшем.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Вычитание массивов"
Сообщение от ola Искать по авторуВ закладки on 31-Июл-03, 14:47  (MSK)
Вот, как вариант:

@arr1=( elements1 );
@arr2=( elements2 );
my %hash;
my @res;

for (@arr1) {
$hash{$_}+=1;
}

for (@arr2) {
$hash{$_}+=2;
}

for (keys %hash) {
push @res, $_ if $hash{$_}==1;
}

В массиве @res - элементы массива @arr1, к-рых нет в @arr2

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Вычитание массивов"
Сообщение от konst emailИскать по авторуВ закладки on 31-Июл-03, 18:15  (MSK)
>Вот, как вариант:
>
>@arr1=( elements1 );
>@arr2=( elements2 );
>my %hash;
>my @res;
>
>for (@arr1) {
> $hash{$_}+=1;
>}
>
>for (@arr2) {
> $hash{$_}+=2;
>}
>
>for (keys %hash) {
> push @res, $_ if $hash{$_}==1;
>}
>
>В массиве @res - элементы массива @arr1, к-рых нет в @arr2
Не проще ли

foreach (@small) { $h{$_} = 1 }
foreach (@big) {
unless ($h{$_}) { push(@res) }

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Вычитание массивов"
Сообщение от ola Искать по авторуВ закладки on 01-Авг-03, 01:11  (MSK)
>Не проще ли
>
>foreach (@small) { $h{$_} = 1 }
>foreach (@big) {
>unless ($h{$_}) { push(@res) }

Проще ;)
просто, первое, что пришло в голову

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Вычитание массивов"
Сообщение от konst emailИскать по авторуВ закладки on 31-Июл-03, 14:49  (MSK)
>Привет!
>Подскажите, как можно в Перле вычесть массив из массива?
>Имеется два массива, больший и меньший. Нужно найти все записи в большем
>массиве, которые отсутствуют в меньшем.
перебор (FOREACH) + перебор (FOREACH) - сравнение значений - создание 3-го массива. Но в этих случаях грамотнее использовать ХЭШ, а не массив.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Вычитание массивов"
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 01-Авг-03, 16:26  (MSK)
Всем большой тенькс :)
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру