zoukankan      html  css  js  c++  java
  • 数组类封装

    MyArray.h

    #ifndef MYARRAY_H
    #define MYARRAY_H
    
    class MyArray{
    public:
        //无参构造函数,用户没有指定容量,则初始化为100
        MyArray();
        //有参构造函数,用户指定容量初始化
        explicit MyArray(int capacity);
        //用户操作接口
        //根据位置添加元素
        void SetData(int pos, int val);
        //获得指定位置数据
        int GetData(int pos);
        //尾插法
        void PushBack(int val);
        //获得长度
        int GetLength();
        //析构函数,释放数组空间
        ~MyArray();
    private:
        int mCapacity; //数组一共可容纳多少个元素
        int mSize; //当前有多少个元素
        int* pAdress; //指向存储数据的空间
    };
    
    #endif

    MyArray.cpp

    #include"MyArray.h"
    
    MyArray::MyArray(){
        this->mCapacity = 100;
        this->mSize = 0;
        //在堆开辟空间
        this->pAdress = new int[this->mCapacity];
    }
    //有参构造函数,用户指定容量初始化
    MyArray::MyArray(int capacity){
        this->mCapacity = capacity;
        this->mSize = 0;
        //在堆开辟空间
        this->pAdress = new int[capacity];
    }
    //根据位置添加元素
    void MyArray::SetData(int pos, int val){
        if (pos < 0 || pos > mCapacity - 1){
            return;
        }
        pAdress[pos] = val;
    }
    //获得指定位置数据
    int MyArray::GetData(int pos){
        return pAdress[pos];
    }
    //尾插法
    void MyArray::PushBack(int val){
        if (mSize >= mCapacity){
            return;
        }
        this->pAdress[mSize] = val;
        this->mSize++;
    }
    //获得长度
    int MyArray::GetLength(){
        return this->mSize;
    }
    //析构函数,释放数组空间
    MyArray::~MyArray(){
        if (this->pAdress != nullptr){
            delete[] this->pAdress;
        }
    }

    TestMyArray.cpp

    #include"MyArray.h"
    
    void test(){
        //创建数组
        MyArray myarray(50);
        //数组中插入元素
        for (int i = 0; i < 50; i++){
            //尾插法
            myarray.PushBack(i);
            //myarray.SetData(i, i);
        }
        //打印数组中元素
        for (int i = 0; i < myarray.GetLength(); i++){
            cout << myarray.GetData(i) << " ";
        }
        cout << endl;
    }
  • 相关阅读:
    lambda续集——1
    c++之—— lambda表达式(有个未能解决的问题等待大佬解答)——(在stack overflow找到了答案)
    交换两个变量,只使用2个变量——权当面试了解使用
    移位实现正负数原码输出
    算法导论之——插入排序
    类模板的实现与定义相分离
    类模板
    当函数模板遇到普通函数
    c++之——template模板函数
    字符转数字,数字转字符
  • 原文地址:https://www.cnblogs.com/mmc9527/p/10431678.html
Copyright © 2011-2022 走看看