C++Dynamic_Array(vector)实现

头文件#include <iostream>using namespace std;#ifndef Dynamic_Num#define Dynamic_Numtemplate <class T>class DynamicVector{ public: template<class Y> friend ostream &operator<<(ostream &out, const Dyn
摘要由CSDN通过智能技术生成

头文件

#include <iostream>

using namespace std;

#ifndef Dynamic_Num
#define Dynamic_Num

template <class T>
class DynamicVector{
   
    public:
        template<class Y>
        friend ostream &operator<<(ostream &out, const DynamicVector<Y> &obj);

        DynamicVector() : array(NULL), mallocSize(0), numOfItems(0), virtualZero(0) {
   }
        DynamicVector(int index) : array(NULL), mallocSize(0), numOfItems(0), virtualZero(index) {
   }
        DynamicVector(T * const begin, T * const end,int index=0);
        DynamicVector(const DynamicVector &obj);
        DynamicVector<T> operator()(int begin, int end);
        //~DynamicVector() { if(array&&numOfItems) delete[] array; }

        void Reset(unsigned int size);
        void Copy_Basic(const DynamicVector<T> &obj);
        DynamicVector<T> &operator=(const DynamicVector<T> &obj);
        unsigned int length() const {
    return numOfItems; }
        unsigned int capacity() const {
    return mallocSize; }
        int firstIndex() const {
    return virtualZero; }
        T *begin() const {
    return &array[0]; }
        T *end() const {
    return &array[numOfItems]; }
        T &operator[](int index);
        
        bool operator==(const DynamicVector<T> &obj) const;

        void swap(DynamicVector<T> &obj);
        void insert(int index, const T &obj);
        inline void push_back(const T &obj);
        void push_back(const DynamicVector<T> &obj);

        void remove();
        void remove(int index);
        void remove(int begin, int end);

    private:
        T *array = NULL; 
        unsigned int mallocSize = 0, numOfItems = 0;
        int virtualZero = 0;
};

template<typename T>
DynamicVector<T>:: DynamicVector(T * const begin, T * const end,int index):numOfItems(end-begin),virtualZero(index){
   
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值