функция класса toString () C ++ - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть класс с именем Set с определенной функцией, которая должна возвращать набор как его строковый эквивалент.У меня есть серьезные проблемы с пониманием того, как это реализовать, поскольку мой учитель не очень хорошо объяснил, что делать.Любая направленная помощь или объяснение будет чрезвычайно ценно.Я опубликовал настройку, которую хотел мой профессор.

edit1: чтобы добавить ясности, я понимаю, как реализовать большинство других функций от руки, но по какой-то причине функция toString () просто не отвечает мне.Также названия функций были даны нам специально, чтобы использовать этот способ, поэтому предполагается, что Union должен быть написан заглавными буквами, поскольку он мешает другой команде.

#include <iostream>
#include <algorithm>
#include <set>
#include <iterator>


class Set
{
public:
    void add(int i);
    bool belongs(int i);
    void difference(Set B);
    void Union(Set B);
    void intersect(Set B);
    std::string toString();
};

int main()
{
    Set A;
    Set B;

    std::cout << "printing A" << std::endl;
    A.toString();
    std::cout << std::endl << "printing B" << std::endl;
    B.toString();
    std::cout << std::endl << "adding 12 to A" << std::endl;
    A.add(12);
    std::cout << std::endl << "printing A" << std::endl;
    A.toString();
    std::cout << std::endl << "does 4 belong to A" << std::endl;
    A.belongs(4);
    std::cout << std::endl << "does 11 belong to A" << std::endl;
    A.belongs(11);
    std::cout << std::endl << " remove B from A" << std::endl;
    A.difference(B);
    std::cout << std::endl << "printing A" << std::endl;
    A.toString();
    std::cout << std::endl << "union of A and B" << std::endl;
    A.Union(B);
    std::cout << std::endl << "printing A" << std::endl;
    A.toString();
    std::cout << std::endl << "intersecting A and B" << std::endl;
    A.intersect(B);
    std::cout << std::endl << "printing A" << std::endl;
    A.toString();
}

//add the number i to the set
void Set::add(int i)
{

}

//return true if i is a member of the set
bool Set::belongs(int i)
{

}

//removes B from the set A where A is the current set so A=A-B
void Set::difference(Set B)
{

}

//performs A U B where A is the current set and the result is stored in A
void Set::Union(Set B)
{

}

//performs A B where A is the current set and the result is stored in A
void Set::intersect(Set B)
{

}

//displays the set in roster notation {1, 2, 3} etc
std::string Set::toString()
{

}

1 Ответ

0 голосов
/ 10 февраля 2019

То, что ваш профессор хочет, чтобы вы сделали, - это напишите функцию std::string Set::toString(){ ... }, которая будет возвращать std::string, который содержит элементы внутреннего контейнера ваших объектов (я подозреваю, что, вероятно, std::vector, основанный на ваших функциях), который будет возвращатьстрока, содержащая элементы в правильном формате.

Вам необходимо изучить, как перебирать внутренний контейнер и добавлять элементы к возвращаемой строке, используя string::append.Надеюсь, что этого направления достаточно, чтобы начать работу над этой функцией и реализовать ее, поскольку она довольно проста.Возможно, вам потребуется использовать метод to_string() для преобразования целых чисел в строки перед добавлением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...