• C++:类模板的应用实现动态数组


    #include
    using namespace std;
    #pragma once
    template
    class MyArray
    {
        public:
            explicit MyArray(int capacity)  //容量
            {
                this->m_Capacity=capacity;
                this->m_Size=0;
                //如果T是对象,那么这个对象必须提供默认的构造函数

                pAddress=new T[this->m_Capacity];  //容量的大小
            }

            //拷贝构造
            MyArray(const MyArray & arr)
            {
                this->m_Capacity=arr.m_Capacity;
                this->m_Size=arr.m_Size;
                this->pAddress=new T[this->m_Capacity];
                for(int i=0;im_Size;i++)
                {
                    this->pAddress[i]=arr.pAddress[i];
                }
            }

            //重载[]操作符arr[0]
            T & operator [](int index)
            {
                return this->pAddress[index];
            }

            //尾插法
            void Push_back(const T & val)
            {
                if(this->m_Capacity==this->m_Size)
                {
                    return;
                }
                this->pAddress[this->m_Size]=val;
                this->m_Size++;
            }

            void Pop_back()
            {
                if(this->m_Size==0)
                {
                    return;
                }
                this->m_Size--;
            }

            int getSize()
            {
                return this->m_Size;
            }

            //析构函数
            ~MyArray()
            {
                if(this->pAddress!=NULL)
                {
                    delete[]this->pAddress;
                    this->pAddress=NULL;
                    this->m_Capacity=0;
                    this->m_Size=0;
                }
            }

        private:
            T *pAddress;   //指向一个堆空间,这个空间存储真正的数据
            int m_Capacity; //容量
            int m_Size;  //大小

    };


    int main(int argc, char *argv[])
    {

        return 0;
    }
     

  • 相关阅读:
    列表进行处理,组成句子
    DataX二次开发——(6)kafkareader、kafkawriter的开发
    MongoDB分片集群
    排队分数 10
    【mysql为什么采用b+树作为索引】
    WPF控件模板2
    安装Zookeeper和Kafka集群
    多网站批量蜘蛛日志分析工具
    js实现高度自动的过渡动画
    【ArcGIS】渔网A和不规则栅格B算面积比
  • 原文地址:https://blog.csdn.net/qq_63626307/article/details/126844408