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

Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составьте пожалуйста блок схему на СИ+, буду благодарен, изучал язык паскаль, СИ+ вообще не понимаю http://www.cyberforum.ru/cpp-beginners/thread1009590.html
1. Дано трехзначное число. В нем зачеркнули последнюю справа цифру и приписали ее в начале. Найти полученное число. #include <iostream> #include <string> #include <sstream> #include <algorithm> int main() { size_t n = 678;
C++ Выводит адрес текста, вместо самого текста #include <iostream> #include <fstream> #include <cstring> #include <conio.h> using namespace std; int vvodfaila(0); char bazar; http://www.cyberforum.ru/cpp-beginners/thread1009589.html
C++ как задать знак пробела?
Дано натуральное число n и символы s1,....,sn. Группы символов разделённые пробелом будут называться словами. Найти длину самого короткого слова. Как мне в строчке 12 задать пробел как символ? #include <iostream> using namespace std; int main() { char const n=10; char i, min=0, min1=10; char s; cout<<"vvedite simvoli \n"; for (i=0;i<n;i++)
Сделать сайт под размер любого экрана C++
Добрый день, сверстала свой первые сайт Столкнулась с такой проблемой, не могу сделать так, чтобы он нормально открывался на экранах любого разрешения. Помогите, пожалуйста!!!!!!!!! Я погуглила, но ничего не понимаю(((( На всякий случай вставляю код css главной страницы: @import(reset.css); #wrapper{ height:1300px; width:100%;
C++ Балансировка бинарного дерева http://www.cyberforum.ru/cpp-beginners/thread1009578.html
Здравствуйте всем! Не подскажете, есть ли какие-нибудь алгоритмы балансировки бинарных деревьев, которые могут содержать одинаковые элементы?
C++ Программа с «указателями» Всем привет! Ребят, требуется сдать последнюю программу на этот семестр, нужно написать прогу при помощи указателей, единственный человек в группе который может помочь мне и тот не разобрался с этими указателями. Помогите, если есть свободное время. «Дана матрица Е размером m*n. Вычислить суммы элементов каждого столбца. Определить наибольшее значение этих сумм и номер соответствующего... подробнее

Показать сообщение отдельно
VladislavTepes
 Аватар для VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
16.11.2013, 21:21     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно
xumera, уже пишу.

Добавлено через 1 час 10 минут
Вот. Извините, что задержал, пришлось отлучиться.
set.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef SET_H_INCLUDED
#define SET_H_INCLUDED
#include <vector>
class CSet
{
    private:
    std::vector<int> els;
    unsigned size;
    public:
    CSet(): size(0) { }
 
    void print();
    void include(int el);
    void exclude(int el);
    bool contains(int el) const ;
    const friend CSet operator+(const CSet& set1, const CSet& set2);
    const friend CSet operator-(const CSet& set1, const CSet& set2);
    const friend CSet operator*(const CSet& set1, const CSet& set2);
    int operator[](unsigned index);
    inline unsigned length() const { return size; }
 
};
#endif // SET_H_INCLUDED
set.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include "set.h"
void CSet::print()
{
    std::cout<<'[';
    for (int el : els) std::cout<<el<<',';
    std::cout<<']';
}
void CSet::include(int el)
{
    els.push_back(el);
    size++;
}
void CSet::exclude(int el)
{
    for (int i=0; i<size; i++)
    {
        if (els[i] == el)
        {
         els.erase(els.begin()+i);
         size--;
        }
    }
}
 
bool CSet::contains(int el) const
{
    for (int x : els)
    {
        if (x==el) return true;
    }
    return false;
}
 
int CSet::operator[](unsigned index)
{
    return els.at(index);
}
 
const CSet operator+(const CSet& set1, const CSet& set2)
{
    CSet result_set;
    for (int x : set1.els)
    {
        if (!result_set.contains(x)) result_set.include(x);
    }
    for (int x : set2.els)
    {
        if (!result_set.contains(x)) result_set.include(x);
    }
    return result_set;
}
 
const CSet operator-(const CSet& set1, const CSet& set2)
{
    CSet result_set;
    for (int x : set1.els)
    {
        if (!set2.contains(x)) result_set.include(x);
    }
    return result_set;
}
 
const CSet operator*(const CSet& set1, const CSet& set2)
{
    CSet result_set;
    for (int x : set1.els)
    {
        if (set2.contains(x)) result_set.include(x);
    }
    return result_set;
}
Добавлено через 9 минут
Демо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include "set.h"
int main()
{
    CSet set1, set2, result_set;
    set1.include(5); set1.include(18);
    set2.include(5); set2.include(18); set2.include(6);
    std::cout<<"Welcome to the sets demo program!\n Printing sets:\nSet 1:\n";
    set1.print();
    std::cout<<"\nSet 2:\n";
    set2.print();
    std::cout<<"\nUnion of the sets:\n";
    result_set = set1 + set2;
    result_set.print();
    std::cout<<"\nIntersection of sets:\n";
    result_set = set1 * set2;
    result_set.print();
    std::cout<<"\nSets difference:\n";
    result_set = set1 - set2;
    result_set.print();
    std::cout<<"\nSelecting a value from the set by index (first el. from the Set 1):\n";
    std::cout<<set1[0];
    std::cout<<"\nСheck for the occurrence (number 5 in set1):\n";
    std::cout<<set1.contains(5);
    std::cout<<"\nGetting the length of Set 1:\n";
    std::cout<<set1.length();
 
 
    return 0;
}
 
Текущее время: 21:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru