首页 > 其他分享 >27.数组类

27.数组类

时间:2022-10-03 19:12:53浏览次数:43  
标签:27 val int pArray void MyArray 数组 mCapacity

01数组类.cpp:

#pragma warning(disable:4996)
//2022年10月2日20:33:53
#include <iostream>
using namespace std;
#include "MyArray.h"

void printMyArray(MyArray &arr)
{
    for(int i = 0; i < arr.Size(); i++)
    {
        cout << arr.Get(i) << " ";
    }
    cout << endl;
}

void test01()
{
    MyArray arr( 20, 1 );
    printMyArray( arr );
    //修改数组中的值
    for(int i = 0; i < arr.Size(); i++)
    {
        arr.Get( i ) = i + 100;
    }
    printMyArray( arr );

    //指定位置修改值
    arr.Set( 2, 0 );
    printMyArray( arr );

    //测试是否发生浅拷贝
    MyArray arr2 = arr;
    printMyArray( arr );
}

int main()
{
    test01();
    system("pause");
    return EXIT_SUCCESS;
}

MyArray.cpp

#include "MyArray.h"

MyArray::MyArray()
{
    this->mCapacity = 20;
    this->mSize = 0;

    this->pArray = new int[this->mCapacity];
    for( int i = 0; i < this->mCapacity; i++ )
    {
        this->pArray[i] = 0;
    }
}

MyArray::~MyArray()
{
    if( this->pArray != NULL )
    {
        delete[] this->pArray;
        this->pArray = NULL;
    }
}

MyArray::MyArray(const MyArray &arr)
{
    this->mCapacity = arr.mCapacity;
    this->mSize = arr.mSize;
    //1.申请空间
    this->pArray = new int[arr.mCapacity];
    //2.拷贝数据
    for(int i = 0; i < this->mSize; i++)
    {
        this->pArray[i] = arr.pArray[i];
    }
}

MyArray::MyArray(int capacity, int val)
{
    this->mCapacity = capacity;
    this->mSize = capacity;
    this->pArray = new int[capacity];
    for(int i = 0; i < this->mSize; i++)
    {
        this->pArray[i] = val;
    }
}

//头插
void MyArray::PushFront(int val)
{

}

//尾插
void MyArray::PushBack(int val)
{

}

//头删
void MyArray::PopFront()
{

}

//尾删
void MyArray::PopBack()
{

}

//获取数组元素个数
int MyArray::Size()
{
    return this->mSize;
}

//获取数组容量
int MyArray::Capacity()
{
    return this->mCapacity;
}

//指定位置插入元素
void MyArray::Insert(int pos, int val)
{

}
//获取指定位置的值
int &MyArray::Get(int pos)
{
    return this->pArray[pos];
}

//在指定位置修改值
void MyArray::Set(int pos, int val)
{
    if(pos < 0 || pos > this->mCapacity - 1)
    {
        return;
    }

    this->pArray[pos] = val;
}

MyArray.h

#pragma once
#include<iostream>
using namespace std;

class MyArray
{
public:
    MyArray();
    MyArray(const MyArray &arr);
    MyArray(int capicity, int val = 0);
    ~MyArray();

    //头插
    void PushFront(int val);
    //尾插
    void PushBack(int val);
    //头删
    void PopFront();
    //尾删
    void PopBack();
    //获取数组元素个数
    int Size();
    //获取数组容量
    int Capacity();
    //指定位置插入元素
    void Insert(int pos, int val);
    //获取指定位置的值
    int& Get(int pos);
    //在指定位置修改值
    void Set(int pos, int val);

private:
    int * pArray;//指向堆区空间,储存数据
    int mSize;//元素个数
    int mCapacity;//容量
};

输出结果:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
100 101 0 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
100 101 0 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
请按任意键继续. . .

标签:27,val,int,pArray,void,MyArray,数组,mCapacity
From: https://www.cnblogs.com/codemagiciant/p/16751034.html

相关文章

  • java---冒泡排序和稀疏数组的学习
    一.冒泡排序1.冒泡排序无疑是最为出名的排序算法,总共有8大排序2.冒泡代码相当简单,两层循环,两层冒泡轮数,里面依次比较3.我们看到的嵌套循环,应该立马就可以的出这个算法的......
  • Jenkins 20220927笔记本4
                          ......
  • SpringCloud重试retry 20220927
    SpringCloud重试retry是一个很赞的功能,能够有效的处理单点故障的问题。主要功能是当请求一个服务的某个实例时,譬如你的User服务启动了2个,它们都在eureka里注册了,那么正常情......
  • java---数组Arrays类学习
    一.Arrays类1.数组的工具类java.util.Arrays2.由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象,进行一些基本......
  • (亲测有效)解决asp.net项目localhost可以访问,127.0.0.1和本机ip访问不了(错误400)
    用vs运行你的网站(一定要用管理员身份运行vs,非常重要,否则没有效果,我就是失败了好几次才发现的)邮件点击桌面右下角的IISExpress=>显示所有应用程序,在下面会有一个配置,用vs......
  • ABC-270 F - Transportation(kruskal)
    ABC-270F-Transportation(kruskal)考虑等价转换,建立两个虚点(分别表示airport和harbor的中转站)。这样就可以把点统一为边权问题。对于操作1和操作2,就是等价于向虚点连边......
  • 数组越界问题
    源于极客时间数据结构我看到评论区的答案各式各样,于是问了一位大佬,他和我说这是一个未定义行为,每台电脑内存和存储空间的分配方式不尽相同,不需要纠结。大概,可能,类似于ff......
  • 数据量大的数组要开到全局变量 否则会造成运行超时
    1097.池塘计数  题目  提交记录  讨论  题解  视频讲解农夫约翰有一片 <spanid="MathJax-Span-2"class="mrow"><spanid="MathJax-Span-......
  • 第十一篇: GO-数组、切片、Maps、sync.map并发安全map
    数组1、定义数组packagemainimport"fmt"funcmain(){ //定义了一个大小为3的int类型数组 //数组在定义阶段,大小和类型就固定了 vara[3]int//只定义,没有......
  • English words chapter 20220927
    作者:​DATA_MONK​​​......