C++ 使用size()返回类中当前的元素数(c+;+;)
我目前正在编写这个程序,不知道如何使用C++ 使用size()返回类中当前的元素数(c+;+;),c++,C++,我目前正在编写这个程序,不知道如何使用size()方法返回值的数量 我必须创建一个名为IntSet的类,它使用以下数据成员表示一组数学上的整数: 指向int的指针,指向动态分配的数组 它保存IntSet 保存数组当前大小的Int(需要 由于arrayresize,每当使用add()方法时更新 一个Int,它保存当前在 IntSet(需要在add()和remove() 方法 到目前为止,我已经创建了一个构造函数和析构函数,在完成了其他方法之后,我完全被这个方法难住了 标题: class IntSe
size()
方法返回值的数量
我必须创建一个名为IntSet
的类,它使用以下数据成员表示一组数学上的整数:
IntSet
数组当前大小的Int(需要
由于array
resize,每当使用add()
方法时更新
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(),这是你的类,你必须定义函数。啊,非常感谢你,伙计。你帮了我这么大的忙,这太疯狂了