C++ 使用size()返回类中当前的元素数(c+;+;)

C++ 使用size()返回类中当前的元素数(c+;+;),c++,C++,我目前正在编写这个程序,不知道如何使用size()方法返回值的数量 我必须创建一个名为IntSet的类,它使用以下数据成员表示一组数学上的整数: 指向int的指针,指向动态分配的数组 它保存IntSet 保存数组当前大小的Int(需要 由于arrayresize,每当使用add()方法时更新 一个Int,它保存当前在 IntSet(需要在add()和remove() 方法 到目前为止,我已经创建了一个构造函数和析构函数,在完成了其他方法之后,我完全被这个方法难住了 标题: class IntSe

我目前正在编写这个程序,不知道如何使用
size()
方法返回值的数量

我必须创建一个名为
IntSet
的类,它使用以下数据成员表示一组数学上的整数

  • 指向int的指针,指向动态分配的数组 它保存
    IntSet

  • 保存
    数组当前大小的Int(需要
    由于
    array
    resize,每当使用
    add()
    方法时更新

  • 一个Int,它保存当前在
    IntSet
    (需要在
    add()
    remove()
    方法

  • 到目前为止,我已经创建了一个
    构造函数
    析构函数
    ,在完成了其他方法之后,我完全被这个方法难住了

    标题:

    class IntSet
    {
    public:
        IntSet(); //Constructor
        ~IntSet(); //Destructor
        int size(); 
        bool isEmpty();
        bool contains();
        void add(double number);
        void remove(double number);
    
    private:
        int* ptr; //pointer to the array
        int sizeOfArray; //current size of the array
        int currentValue; //number of values currently in IntSet
    }
    
    到目前为止的主要代码是:

    #include <iostream>
    
    #include "IntSet.hpp"
    
    IntSet::IntSet()
    {
        sizeOfArray = 10;
        currentValue = 0;
        int* ptr = new int[10];
    }
    
    IntSet::~IntSet()
    {
        delete ptr;
    }
    
    #包括
    #包括“IntSet.hpp”
    IntSet::IntSet()
    {
    sizeOfArray=10;
    currentValue=0;
    int*ptr=新的int[10];
    }
    IntSet::~IntSet()
    {
    删除ptr;
    }
    

    那么我该如何在这里开始使用
    size()
    方法呢?

    如果currentValue确实如您的注释所述是intSet中的值数,那么size()可以简单地返回currentValue。

    size是集合中的元素数。 首先,您应该使用值0初始化它

    每成功添加新元素一次,将当前大小增加1 每成功删除一个元素,将当前大小减少1
    方法size(),您只需要从给定的规范中返回集合的当前大小,currentValue保留集合中的值数,以便在.cpp文件中定义以下内容

    int IntSet::size() const
    {
        return currentValue;
    }
    

    请记住,无论何时向集合中添加或从集合中删除元素,都需要增加/减少此值。

    返回sizeOfArray;
    就这样做…@LogicStuff会给出错误的答案。sizeOfArray实际上是IntSet的容量,Size()可能应该返回IntSet中的值数。我们不知道OP如何使用它,甚至OP也不知道。您的代码还有一些其他问题:
    delete
    应该是
    delete[]
    因为您要删除一个数组。另外,include语句的结尾不需要分号。除此之外,正如其他人所说。只需实现
    size()
    这样它将返回
    当前值
    。此外,构造函数没有将数组分配给成员
    ptr
    ,而是创建一个名为
    ptr
    的单独变量并将数组分配给该成员!因此我不必包含size()在我的.cpp文件中有吗?@cdante我说了什么听起来像这样的话?当然你必须包括size(),这是你的类,你必须定义函数。啊,非常感谢你,伙计。你帮了我这么大的忙,这太疯狂了