Форум программистов, компьютерный форум CyberForum.ru

Как описывать множества, пересекать их, складывать - C++

Восстановить пароль Регистрация
 
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
01.12.2013, 23:42     Как описывать множества, пересекать их, складывать #1
Расскажите, как описывать множества, пересекать их, складывать и т.д. Искал в гугле, но не нашел ничего путного
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
01.12.2013, 23:58     Как описывать множества, пересекать их, складывать #2
Цитата Сообщение от max_besheniy Посмотреть сообщение
как описывать множества
std::set например
Цитата Сообщение от max_besheniy Посмотреть сообщение
пересекать их
std::set_intersection
Цитата Сообщение от max_besheniy Посмотреть сообщение
кладывать
std::set_union
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 00:04  [ТС]     Как описывать множества, пересекать их, складывать #3
Нужно ли для множест отдельную библиотеку подключать? Если я хочу создать можножество символов и записать туда символы 'A' 'B' 'C', что мне нужно написать?
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
02.12.2013, 00:51     Как описывать множества, пересекать их, складывать #4
По указанной выше ссылке первая строка в описании "Defined in header <set>"
Видимо
C++
1
#include <set>
. На msdn неплохо описан http://msdn.microsoft.com/en-us/library/e8wh7665.aspx
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,411
02.12.2013, 00:57     Как описывать множества, пересекать их, складывать #5
Цитата Сообщение от max_besheniy Посмотреть сообщение
Нужно ли для множест отдельную библиотеку подключать?
set это часть стандартной библиотеки, set_intersection, set_union тоже (algorithm).
Мне вот больше нравится описание здесь:
http://www.cplusplus.com/reference/set/set/
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 14:03  [ТС]     Как описывать множества, пересекать их, складывать #6
Скажите, как присвоить множеству значение? Если я хочу создать множество и заполнить его буквами латинского алфавита
C++
1
set<char> letter;
Вот множество я создать могу, а присвоить значение нет
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
02.12.2013, 14:06     Как описывать множества, пересекать их, складывать #7
max_besheniy, метод insert.
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 14:18  [ТС]     Как описывать множества, пересекать их, складывать #8
Из ссылок, что кинули, я не понял. Напишите кодом пожалуйста
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
02.12.2013, 14:26     Как описывать множества, пересекать их, складывать #9
max_besheniy,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <iterator>
#include <algorithm>
#include <set>
 
 
int main() {
   std::set<char> letters;
 
   letters.insert('a');
   letters.insert('v');
   letters.insert('z');
 
   std::copy(letters.begin(), letters.end(), std::ostream_iterator<char>(std::cout, "\n"));
}
C++11:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <set>
 
 
int main() {
   std::set<char> letters = {'a', 'v', 'z'};
 
   for (auto const letter : letters) {
      std::cout << letter << std::endl;
   }
}
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 14:37  [ТС]     Как описывать множества, пересекать их, складывать #10
А как задать множество промежутком, если мне нужно от 'A' до 'Z' символы записать
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
02.12.2013, 14:40     Как описывать множества, пересекать их, складывать #11
Цитата Сообщение от max_besheniy Посмотреть сообщение
А как задать множество промежутком, если мне нужно от 'A' до 'Z' символы записать
Можно в цикле вставлять
C++
1
2
3
for (char ch = 'A'; ch <= 'Z'; ++ch) {
   letters.insert(ch);   // либо вроде можно ещё "с подсказкой" letters.insert(letters.end(), ch);
}
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 14:43  [ТС]     Как описывать множества, пересекать их, складывать #12
А без цикла нельзя? Вот на паскале можно так
Pascal
1
2
3
var c:set of char;
begin
c:=['a'..'z'];
Есть ил аналогичная операция на сpp?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
02.12.2013, 14:48     Как описывать множества, пересекать их, складывать #13
Цитата Сообщение от max_besheniy Посмотреть сообщение
Есть ил аналогичная операция на сpp?
Нет, но если уже есть нужная последовательность в другом контейнере\массиве, то можно:
C++
1
2
3
std::vector<char> chars;   // ['A' .. 'Z'], vector для примера
std::set<char> letters(chars.begin(), chars.end());   // сконструировать
letters.assign(chars.begin(), chars.end());   // присвоить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 14:49     Как описывать множества, пересекать их, складывать
Еще ссылки по теме:

C++ Написать программу проверки умения складывать и вычитать числа в пределах 100. Программа должна вывести 10 примеров и выставить оценку за 10 правильны
C++ Бинарное дерево: в каком виде описывать вызов процедуры, то есть передавать корень
C++ Как складывать строки или символы через циклы с использованием массивов

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

Или воспользуйтесь поиском по форуму:
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 14:49  [ТС]     Как описывать множества, пересекать их, складывать #14
Спасибо
Yandex
Объявления
02.12.2013, 14:49     Как описывать множества, пересекать их, складывать
Ответ Создать тему
Опции темы

Текущее время: 18:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru