c++自定义动态数组,处理元素删除释放问题
最近在学数据结构,想实现个动态数组,为了适应不同的数据类型,使用了类模板,但在实例化模板的时候,如果是普通的数据类型(int, double)还好处理,但如果存储的是new出来的对象,存放在堆区,在删除的时候如何处理呢?~~~~
首先想到的是判断是否是对象,但C++好像并没有这种功能
template<typename T>
class DynamicArray
{
public:
DynamicArray();
DynamicArray(int capacity);
~DynamicArray();
string toString();
bool isEmpty();
bool isOverflow(int index);
void push(T element);
void clear();
int size();
int indexOf(T element);
int insert(int index, T element);
T remove(int index);
T set(int index, T element);
T get(int index);
private:
void rangeCheck(int index);
void ensureCapacity();
private:
int m_length;
int m_capacity;
T *m_elements;
static int DEFAULT_CAPACITY;
static int ELEMENT_NOT_FOUNT;
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
照理说数组应该只管存就好了,不用管释放的事。谁申请就谁负责释放,或者谁最后不用了谁负责释放。一定要数组自己负责的话,就改成存指针(
T*
),删除元素时就能delete
了。