• C++ 自定义动态数组模板


    #include "stdafx.h"
    #include <iostream>
    using namespace std;

    template <class T>
    class MyArray
    {
        int len;
    public:
        T *data;
        MyArray()
        {
        data = NULL;
        len = 0;
     }
        ~MyArray()
     {
       delete[] data;
     }
        T& operator [](int index);
        void push(T d);
    };
    template <class T>
    T& MyArray<T>::operator [](int index)
    {
        if(index<0||index>(len-1))
      {
        cout<<"Bad subscript!"<<endl;
        exit(1);
      }
      return data[index];
    }
    template <class T>
    void MyArray<T>::push(T d)
    {
      T *pdata = data;
      data = new T[len + 1];
      if(pdata != NULL)
      {
        for(int i = 0 ; i < len ; i++)
        {
          data[i] = pdata[i];
        } 
        delete[] pdata;
       }
       data[len] = d; 
       len++;
    }

    //测试代码 

    int main(int argc, char* argv[])
    {
      MyArray<int>  a;
        a.push(11);
        a.push(22);
        a.push(33);
      a.push(55);
      a[0]=44;
        cout<<a[0]<<endl<<a[1]<<endl<<a[2]<<endl<<a[3]<<endl;
      return 0;
    }

  • 相关阅读:
    五分钟搭建起一个包含CRUD功能的JqGrid表格
    TDD学习笔记【六】一Unit Test
    CQRS
    开源一个vue2的tree组件
    权限管理[Linux]
    文件管理[Linux]
    查看文本[Linux]
    常用命令[Linux]
    文件管理[Linux]
    状态机工作流
  • 原文地址:https://www.cnblogs.com/pbreak/p/1766920.html
Copyright © 2020-2023  润新知