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

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

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

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

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

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

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

Как складывать числа, если даны только указатели на них? - C++
В общем, стоят задача, в которой требуется передать в функцию указатели на числа типа float и произвести с ними некоторые действия....

Как складывать строки или символы через циклы с использованием массивов - C++
Вообщем-то возникли трудности с решением кое-какой задачи. Не пойму как складывать строки или символы через циклы с использованием...

Как описывать функции, заданные в шаблоне класса, тип возвращаемого значения которых совпадает с именем класса - C++
Здравствуйте. А как описывать функции, заданные в шаблоне класса, тип возвращаемого значения которых совпадает с именем класса? Более...

Где описывать методы? - C++
Добрый день, форумчане. Я создаю приложение windows form application(visual c++) и хотел бы узнать, где описываем сами методы, т.е. не в...

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

13
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
01.12.2013, 23:58 #2
Цитата Сообщение от max_besheniy Посмотреть сообщение
как описывать множества
std::set например
Цитата Сообщение от max_besheniy Посмотреть сообщение
пересекать их
std::set_intersection
Цитата Сообщение от max_besheniy Посмотреть сообщение
кладывать
std::set_union
0
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 00:04  [ТС] #3
Нужно ли для множест отдельную библиотеку подключать? Если я хочу создать можножество символов и записать туда символы 'A' 'B' 'C', что мне нужно написать?
0
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
0
MrGluck
Модератор
Эксперт CЭксперт С++
7423 / 4538 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
02.12.2013, 00:57 #5
Цитата Сообщение от max_besheniy Посмотреть сообщение
Нужно ли для множест отдельную библиотеку подключать?
set это часть стандартной библиотеки, set_intersection, set_union тоже (algorithm).
Мне вот больше нравится описание здесь:
http://www.cplusplus.com/reference/set/set/
0
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 14:03  [ТС] #6
Скажите, как присвоить множеству значение? Если я хочу создать множество и заполнить его буквами латинского алфавита
C++
1
set<char> letter;
Вот множество я создать могу, а присвоить значение нет
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
02.12.2013, 14:06 #7
max_besheniy, метод insert.
0
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 14:18  [ТС] #8
Из ссылок, что кинули, я не понял. Напишите кодом пожалуйста
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 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;
   }
}
0
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 14:37  [ТС] #10
А как задать множество промежутком, если мне нужно от 'A' до 'Z' символы записать
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 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);
}
0
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?
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 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());   // присвоить
1
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 14:49  [ТС] #14
Спасибо
0
02.12.2013, 14:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 14:49
Привет! Вот еще темы с ответами:

Можно ли складывать поля классов? - C++
Базовый класс А, поле а. Производный класс В, поле в. Можно ли создать метод, складывающий поля а и в? class A { public: int...

Механизм, позволяющий описывать новый класс на основе уже существующего - C++
Как называется механизм, позволяющий описывать новый класс на основе уже существующего с сохранением его свойств и функциональности?

Графика: Как сделать так, чтобы персонаж не мог проходить, пересекать стены? - Pascal ABC
Приветствую. Нарисовал лабиринт и персонажа (красный круг), который должен дойти до выхода от старта. Так вот, персонаж может проходить...

Как правильнее описывать события? - C#
Такой немного странный вопрос: как правильнее описывать события? (например: event Action SomeEvent) Я имею ввиду чисто стилистически. Так...


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

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

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