Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NNN7
8 / 8 / 3
Регистрация: 05.09.2013
Сообщений: 502
#1

Какую функцию STL использовать для работы с множеством ? - C++

18.04.2014, 19:02. Просмотров 306. Ответов 7
Метки нет (Все метки)

Есть 2 множества : а и b

C++
1
2
3
4
5
6
7
8
9
10
  for( int i = 0; i < 5; i++) {
        a.insert(i);
    }
        copy(a.begin(),a.end(),ostream_iterator<int>(cout, " "));
 
    cout<<endl; 
  for( int i = 0; i < 5; i++) {
        b.insert(i+1);
    }
        copy(b.begin(),b.end(),ostream_iterator<int>(cout, " "));
а = 0, 1,2,3,4
b = 1,2,3,4,5

какую функцию STL нужно использовать , чтобы найти те элементы , которые отличают эти 2 множества ( то есть , результатом должно быть 0, 5) .

подскажите, пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 19:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Какую функцию STL использовать для работы с множеством ? (C++):

Какую библиотеку лучше использовать для работы с файлами в с++? - C++
Какую библиотеку лучше использовать для работы с файлами в с++? stdlib\fstream?

Какую функцию ввода строки с клавиатуры использовать? - C++
Использую VS Express 2013. Очень начинающий. Столкнулся с проблемой - как ввести строку с клавиатуры. В самоучителе приведен...

Какую и как использовать функцию, чтобы float сделать int? - C++
Какую и как использовать функцию, чтобы float сделать int?

Какой контейнер в STL и для чего эффективнее использовать? - C++
Какой контейнер в STL и для чего эффективнее использовать? И почему

Упорядочить список по возрастанию (для решения задачи использовать STL) - C++
Во входном файле в первой строке три слова и число (13 12 65) в последующих тоже самое. Проверьте код, пожалуйста, выводит непонятные...

Какую библиотеку использовать для написания программы для моделирования - C++
Собственно в заголовке всё написано. Сразу скажу,что я пользовался поисковиком и нашёл казалось бы тему аналогичную почти с моей(да да...

7
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
18.04.2014, 19:14 #2
std::set_difference
1
Jupiter
Каратель
Эксперт С++
6560 / 3981 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.04.2014, 19:16 #3
std::set_symmetric_difference
1
NNN7
8 / 8 / 3
Регистрация: 05.09.2013
Сообщений: 502
18.04.2014, 19:43  [ТС] #4
почитал о ней , но смутно понял , как использовать :
C++
1
2
3
set <int> c;
set <int> dif;
c=std::set_difference (a,a+5,b,b+5,dif);
с алгоритмом не могу разобраться ; 1 и 3 параметр - это сами множества , а остальные ..?

Добавлено через 22 минуты
ещё вот так сделал :

C++
1
2
3
4
5
6
7
        set_difference(a.begin(), a.end(), b.begin(), b.end(),
 
  inserter(dif, dif.begin()));
 
        cout<<endl<<"differents:";
 
        copy(dif.begin(),dif.end(),ostream_iterator<int>(cout, " "));

но только одно число выводит : 0
0
Jupiter
Каратель
Эксперт С++
6560 / 3981 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.04.2014, 00:56 #5
Цитата Сообщение от NNN7 Посмотреть сообщение
но только одно число выводит : 0
Цитата Сообщение от Jupiter Посмотреть сообщение
std::set_symmetric_difference
...
1
_Fenix_
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 18
19.04.2014, 01:12 #6
Извините за невнимательность .
Пробую так:

C++
1
set_symmetric_difference(a.begin(),a.end(),b.begin(),b.end(),back_inserter(diff));

ошибку выдаёт :
error C2039: 'push_back' : is not a member of 'std::set<_Kty>'
0
Jupiter
Каратель
Эксперт С++
6560 / 3981 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.04.2014, 01:19 #7
Цитата Сообщение от _Fenix_ Посмотреть сообщение
back_inserter
back_inserter неприменим к std::set

Добавлено через 25 секунд

Не по теме:

Цитата Сообщение от _Fenix_ Посмотреть сообщение
Извините за невнимательность .
клон?

1
_Fenix_
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 18
19.04.2014, 01:40 #8
просто тоже интересует эта тема

Добавлено через 1 минуту
А что же тогда вместо него нужно использовать ?

Добавлено через 5 минут
Сделал так:
C++
1
set_symmetric_difference(a.begin(),a.end(),b.begin(),b.end(),inserter(res,res.begin()));
0
19.04.2014, 01:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2014, 01:40
Привет! Вот еще темы с ответами:

Какую ide лучше использовать для c++ - C++
какой ide лучше использовать для c++?

Задачу с использованием STL. Разработать шаблон класса для работы с односвязным списком - C++
Решить задачу с использованием STL. Разработать шаблон класса для работы с односвязным списком. Тип элементов задается как параметр...

Какую IDE использовать для разработки приложений с GUI? - C++
Нужно написать программу, чтобы она нормально выглядела нужно сделать GUI, но хочу создать его в редакторе форм. QT creator скачал...

Составить функцию, определяющую, является ли ее целый аргумент простым числом. Использовать эту функцию для п - C++
Составить функцию, определяющую, является ли ее целый аргумент простым числом. Использовать эту функцию для подсчета количества простых...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru