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

Создать класс описывающий множество - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести среднюю сумму по броскам для обоих участников (игра "кубики") http://www.cyberforum.ru/cpp-beginners/thread162929.html
Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компьютером, кубики бросаются поочередно. Побеждает тот, у кого сумма выпавших очков по итогам пяти бросков больше. Предусмотрите возможность получения первого хода человеком или компьютером. Кубики отображаются с помощью символов. В конце игры необходимо выводить среднюю сумму по броскам для обоих...
C++ Какая есть библиотека для работы с ftp? есть ли какая либо библиотека для работы с ftp? <ftp.h> -?если нет то где можно скачать? Программирую на С++ в КОНСОЛИ. Программа под винду. я новичок так что извените если что не так. http://www.cyberforum.ru/cpp-beginners/thread162913.html
C++ Как реализовать работу со списком строк и списком цифр в классе List?
Добрый день! Проблема такая Есть класс-список: #include "stdafx.h" #include <iostream> #include <string> using namespace std; class Node {
Паркет C++
есть паркет (см. рисунок) даны кординати нижней левой и правой верхней точки (в даном случае 4 4 и 12 10) закрашеной области. нужно определить сколько внутри этой области прямоугольников 1х1, 1х2, 1х3, 1х4, 1х5. в даном случае 6 1 0 0 8 соответственно. закрашеная область может быть произвольной
C++ Link error на inline функцию http://www.cyberforum.ru/cpp-beginners/thread162841.html
Почему выдает ошибку undefined reference to `OldCat::GetAge() const' на inline ф-цию при ее вызове? Убираю inline, все компилится нормально. Функция простая: inline int OldCat::GetAge() const { cout << "Calling function GetAge..." << endl; return itsAge; }
C++ Какая должна быть структура сложного (объемного) проекта? Работа программы начинается с выполнения функции main(). В самой программе куча функций и классов. Как организовать структуру достаточно сложного проекта (программы), чтобы не "утонуть" в ней? Насколько я понимаю, удобнее всего каждый осмысленный блок выделять в отдельный файл + хедеры также отдельным блоком, чтобы не мешались :) То есть получается нечто такое: main.cpp - укрупненная логика... подробнее

Показать сообщение отдельно
alexzak
84 / 57 / 1
Регистрация: 07.08.2010
Сообщений: 185
14.09.2010, 05:50     Создать класс описывающий множество
У класса Mnoj интерфейс пустой, т.е. кроме конструктора и деструктора в нём ничего нет. Подумай, какие операции ты можешь совершать над множеством и его элементами:

1. включить элемент во множество
2. исключить элемент
3. проверить входит ли элемент во множество
4. пройти по всем элементам множества

Вот это и должно быть в интерфейсе. Через это ты и будешь реализовывать объединение, дополнение и т.д.
C++
1
2
3
4
5
6
7
8
9
10
class Mnoj
{
public:
    void insert(int elem);  // включить
    void erase(int elem);  // исключить
    bool contains(int elem) const;  // проверить вхождение
 
    void getall(int *& first, int & size) const;
        // получить указатель на первый элемент и число элементов
};
Твоя задача: реализовать этот интерфейс.

Через этот интерфейс объединение реализуется так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void insert_all(Mnoj & dst, Mnoj const & src)
{
    int * elems;
    int size;
    src.getall(elems, size);
 
    for (int i = 0; i < size; ++i)
        dst.insert(elems[i]);    
}
 
void union(Mnoj & dst, Mnoj const & m1, Mnoj const & m2)
{
    insert_all(dst, m1);
    insert_all(dst, m2);
}
Пересечение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
void intersection(Mnoj & dst, Mnoj const & m1, Mnoj const & m2)
{
    int * elems;
    int size;
    m1.getall(elems, size);
 
    for (int i = 0; i < size; ++i)
    {
        if (m2.contains(elems[i]))
            dst.insert(elems[i]);
    }
}
Всё делается исходя из определения этих операций. Понятно?
 
Текущее время: 01:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru