c++自定义动态数组,处理元素删除释放问题

发布于 2022-09-12 02:28:07 字数 875 浏览 11 评论 0

最近在学数据结构,想实现个动态数组,为了适应不同的数据类型,使用了类模板,但在实例化模板的时候,如果是普通的数据类型(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

日裸衫吸 2022-09-19 02:28:07

照理说数组应该只管存就好了,不用管释放的事。谁申请就谁负责释放,或者谁最后不用了谁负责释放。一定要数组自己负责的话,就改成存指针(T*),删除元素时就能delete了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文