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

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

Войти
Регистрация
Восстановить пароль
 
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
#1

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

01.12.2013, 23:42. Просмотров 525. Ответов 13
Метки нет (Все метки)

Расскажите, как описывать множества, пересекать их, складывать и т.д. Искал в гугле, но не нашел ничего путного
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2013, 23:42     Как описывать множества, пересекать их, складывать
Посмотрите здесь:

C++ Как описывать функции, заданные в шаблоне класса, тип возвращаемого значения которых совпадает с именем класса
C++ Как описывать методы в классах?
С помощью перегрузки операторов складывать, вычитать натуральные дроби C++
Можно ли складывать поля классов? C++
C++ Где описывать методы?
C++ Когда можно не описывать длину строки
Множества. Вычислить количество элементов множества Q, связанного c исходными множествами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1249 / 1132 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 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
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6218 / 3463 / 423
Регистрация: 29.11.2010
Сообщений: 9,176
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
1249 / 1132 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 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
1249 / 1132 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 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
1249 / 1132 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 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
1249 / 1132 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 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++ Число изъять из множества А, если оно является элементом множества А, но не является элементом множества В
C++ Бинарное дерево: в каком виде описывать вызов процедуры, то есть передавать корень
C++ Как складывать строки или символы через циклы с использованием массивов
Квадрат с вершинами из первого множества накрывает все точки второго множества и имеет минимальную площадь C++
C++ Механизм, позволяющий описывать новый класс на основе уже существующего

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

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

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