Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » ссылки

Ответить
Настройки темы
ссылки

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ребята помогите пожалуста,то я чето не пойму:
  1. Даны два массива : А[n] и B[m]. Необходимо создать третий массив, в котором нужно собрать:
  2. Элементы обоих массивов;
  • Общие элементы двух массивов;
  • Элементы массива A, которые не включаются в B;
  • Элементы массива B, которые не включаются в A;
  • Элементы массивов A и B, коотрые не являются общими дял них (то есть объединение результатов двух предыдущих вариантов).
Огромное спасибо!!!!

Отправлено: 22:36, 19-12-2005

 
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


На C++, я бы посоветовал сначала отсортировать A и B (если это массивы):
Код: Выделить весь код
std::vector<double> A, B;
// ... fill someway

std::vector<double> a1(A), b1(B);
std::sort(a1.begin(), a1.end());
std::sort(b1.begin(), b1.end());
дальше используются алгоритмы на сортированных списках (unique, merge и др.). К сожалению, у меня нет под рукой справочника, поэтому конкретно не пишу.

Если память позволяет, а вместо double используется что-то более тяжёлое, то лучше воспользоваться шаблоном set.
Там все нужные функции есть.


Отправлено: 15:09, 21-12-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Обнаружил хелп:
Код: Выделить весь код
std::vector in_both(std::min(a.size(), b.size()));
in_both.erase(std::set_intersection(a.begin(), a.end(), b.begin(), b.end(), in_both.begin()));

std::vector not_in_a(b.size());
not_in_b.erase(std::set_difference(b.begin(), b.end(), a.begin(), a.end(), not_in_a.begin()));

std::vector not_in_b(a.size());
not_in_b.erase(std::set_difference(a.begin(), a.end(), b.begin(), b.end(), not_in_b.begin()));

std::vector not_in_both(not_in_a);
not_in_both.insert(not_in_b.begin(), not_in_b.end());
Для справедливости, все результаты можно отсортировать и пропустить через unique.

Отправлено: 13:12, 22-12-2005 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » ссылки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Грузятся не те ссылки kul Хочу все знать 5 09-02-2008 20:40
Не работают ссылки pikador Хочу все знать 1 24-09-2006 08:57
Ссылки Anet256 Вебмастеру 2 12-06-2003 01:59
Ссылки :) JumpingJack Вебмастеру 5 07-12-2002 21:46




 
Переход