Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
3 / 3 / 1
Регистрация: 20.09.2010
Сообщений: 100
1

Сравнение списков

14.04.2012, 23:15. Показов 2633. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток . Нужен небольшой совет по программе . Есть 2 списка (стандартный STL-кий класс list ) , нужно сравнить их на равенство или неравенство , причем порядок следования узлов не учитывать . То есть фактически списки A-B-C и B-C-A должны быть равны (если учитывать порядок , то можно воспользоваться уже перегруженным оператором == класса list ) . Не могу сообразить нужный алгоритм .Надеюсь на дельный совет. Заранее спасибо .
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2012, 23:15
Ответы с готовыми решениями:

Сравнение списков STL
не работает функция сравнения списков STL, в частности fNumber и sNumber почему-то принимают...

Сравнение двух списков
Доброго всем времени суток. Изначальное задание было вот таким - "написать программу, содержащую...

Сравнение списков vector <string>
# include &lt;iostream&gt; # include &lt;string&gt; # include &lt;fstream&gt; # include &lt;vector&gt; # include...

Сравнение элементов двух однонаправленных линейных списков
А как сравнить элементы двух списков? Чтобы при совпадении элементов счётчик прибавлял единичку?...

3
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
14.04.2012, 23:34 2
Думаю, стоит отсортировать и уже потом сравнивать.
1
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
14.04.2012, 23:58 3
Можно воспользоваться одним из алгоритмов семейства set, например, set_difference; не помню только, работает он с котейнерами разных типов или нет.

(хотя по факту выигрыш во времени вряд ли будет, потому, что, сдаётся мне этот алгоритм использует то же самое поэлементое сравнивание)
1
3 / 3 / 1
Регистрация: 20.09.2010
Сообщений: 100
15.04.2012, 12:45  [ТС] 4
насколько я знаю , есть метод sort() для таких списков . Но тогда придется перегружать оператор < , что моем случае не очень удобно .

Добавлено через 12 часов 46 минут
Единственно , что я смог придумать , это записать списки в буферные списки tmp1 и tmp2, которые можно преобразовывать , как нам захочется (так как мой оператор сравнения не предусматривает изменение объектов). Далее сортирую tmp1 и tmp2 и проверяю условие tmp1==tmp2 (благо этот оператор уже перегружен в самом классе list) .
ЗЫ : но это все , конечно , немного нерационально . неужели нет менее трудоемких способов сравнить не отсортированные объекты ? посмотрел даже парочку методов контейнера set - все работают при условии, что контейнеры отсортированы .
0
15.04.2012, 12:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2012, 12:45
Помогаю со студенческими работами здесь

Сравнение двух списков, на основе vector <string>
# include &lt;iostream&gt; # include &lt;string&gt; # include &lt;fstream&gt; # include &lt;vector&gt; # include...

Сравнение 2-х списков и удаление одинаковых элементов из 2-го списка
# include &lt;iostream&gt; # include &lt;string&gt; # include &lt;fstream&gt; # include &lt;vector&gt; # include...

Сравнение текста из файла и сравнение с текстом в программе char - Dev C++
Доброго времени суток! Имеется код программы: ifstream test(&quot;primer.txt&quot;); char awm = &quot;kod&quot;;...

Сравнение списков
Написать функцию, которая проверяет, состоят ли два заданных списка из одних и тех же элементов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru