assign1(中文)(4)
发布时间:2021-06-06
发布时间:2021-06-06
作业c++项目
~ PersonSet (void);
public:
void Add(Person & element) ;
Person & NextElement() ;
// 从set中移除最后一个成员
//如果Set空的数据超过一半,释放一些内存
Person & RemoveElement();
// 从Set中的index索引处移除成员
// 如果Set空的数据超过一半, 释放一些内存
Person & RemoveElement( int index );
int Size(); //answer the number of elements in the set.
void Print(); //print the elements of the set
//void Reset();
private:
Person ** _elements;
int _capacity; //volume of the set
int _size; //number of elements in the set
int _index;
};
Growable Sets (可扩展的Set)
你的Set应该使用一个数组来存储成员并且数组应该使用new在堆上分配.
当set被创建时,它有一个指定的尺寸(指数组). 如果它满了, 必须从堆中开辟更多的内存. 这个将会在某一次Add()函数的期间.
如果set中有太多空的位置了(数组),它应该去释放它的一些内存. 这将发生在某一次remove函数调用的期间. 建议:如果有一半以上空间未存储Person指针(也就是上面所说的空),那么它就去释放一些内存(一半内存).
你的set类应该在它扩展和缩小空间是用cout打印出一串信息.
这个信息应该标明内存开辟或释放后的所能存储的最大值(capacity).
这里是容器的用于基本的扩展和缩小空间的实现.