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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести среднюю сумму по броскам для обоих участников (игра "кубики") http://www.cyberforum.ru/cpp-beginners/thread162929.html
Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компьютером, кубики бросаются поочередно. Побеждает тот, у кого сумма выпавших очков по итогам пяти бросков больше. Предусмотрите возможность получения первого хода человеком или компьютером. Кубики отображаются с помощью символов. В конце игры необходимо выводить среднюю сумму по броскам для обоих...
C++ Перевод чисел из одной системы счичления в другие Помогите пожалуйстареализовать такую программу: Написать функцию, которая получает в качестве аргументов целое положительное число и систему счисления, в которую это число должно переводится (системы счисления от 2 до 36). Например, при переводе числа 27 в систему счисления 16 должно получиться 1B; 13 в 5-ю - 23; 35 в 18-ю - 1H. http://www.cyberforum.ru/cpp-beginners/thread162923.html
Какая есть библиотека для работы с ftp? C++
есть ли какая либо библиотека для работы с ftp? <ftp.h> -?если нет то где можно скачать? Программирую на С++ в КОНСОЛИ. Программа под винду. я новичок так что извените если что не так.
C++ Как реализовать работу со списком строк и списком цифр в классе List?
Добрый день! Проблема такая Есть класс-список: #include "stdafx.h" #include <iostream> #include <string> using namespace std; class Node {
C++ Класс целых чисел http://www.cyberforum.ru/cpp-beginners/thread162874.html
Ребят помогите плиз с таким вот делом: нужно сделать класс для списка целых чисел. Что бы можно было добавить в начало число, добавить в конец, узнать сколько там элементов, получить n-ый элемент, присвоить n-ый элемент, удалить n-ый элемент, добавить новый элемент в n-ую позицию, итд. Реализовать класс через списки. Есть мысли?!
C++ Паркет есть паркет (см. рисунок) даны кординати нижней левой и правой верхней точки (в даном случае 4 4 и 12 10) закрашеной области. нужно определить сколько внутри этой области прямоугольников 1х1, 1х2, 1х3, 1х4, 1х5. в даном случае 6 1 0 0 8 соответственно. закрашеная область может быть произвольной подробнее

Показать сообщение отдельно
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]);
    }
}
Всё делается исходя из определения этих операций. Понятно?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru