zoukankan      html  css  js  c++  java
  • 第六周项目2-我的数组类

    下面的程序,因为存在指针类型的数据成员,需要能完成深复制的构造函数。请补充完整构造函数和析构函数(其他不必动)。其中,构造函数要完成下面三个任务:
    (1)为各成员函数赋值,按照深复制原则,其中arrayAddr应该是为保存数据新分配的连续空间的首地址;
    (2)MyArray(int *a, int n)中,要将a指向的数组中的数值,逐个地复制到新分配的arrayAddr指向的空间中;

    (3)getMax( )函数采取的策略是直接返回max(所以,计算max的工作,由构造函数完成)

    /*
    * Copyright (c) 2015,烟台大学计算机学院
    * All right reserved.
    * 作者:邵帅
    * 文件:Demo.cpp
    * 完成时间:2015年04月16日
    * 版本号:v1.0
    */
    #include<iostream>
    using namespace std;
    class MyArray
    {
    private:
        int *arrayAddr; //保存一个有len个整型元素的数组的首地址
        int len;       //记录动态数组的长度
        int max;       //动态数组中的最大值(并非动态数组中必须要的数据成员)
    public:
        MyArray(int *a, int n);
        ~MyArray();
        int getValue(int i);   //获得数组中下标为i的元素的值
        int getLen();          //返回数组长度
        int getMax( );         //返回数组中的最大值
    };
    MyArray::MyArray(int *a, int n)
    {
        len=n;
        arrayAddr=new int[n];
        max=a[0];
        for(int i=0; i<n; i++)
        {
            arrayAddr[i]=a[i];
            if (max<a[i])
            {
                max=a[i];
            }
        }
    
    }
    MyArray::~MyArray()
    {
        delete [] arrayAddr;
    }
    int MyArray::getValue(int i)    //获得数组中下标为i的元素的值
    {
        return arrayAddr[i];
    }
    int MyArray::getLen()    //返回数组长度
    {
        return len;
    }
    int MyArray::getMax( )    //返回数组中的最大值
    {
        return max;
    }
    int main()
    {
        int b[10]= {75, 99, 90, 93, 38, 15, 5, 7, 52, 4};
        MyArray r1(b,10);
        cout<<"最大值:"<<r1.getMax()<<endl;
        int c[15] = {18,68,10,52,3,19,12,100,56,96,95,97,1,4,93};
        MyArray r2(c,15);
        int i,s=0;
        for(i=0; i<r2.getLen(); i++)
            s+=r2.getValue(i);
        cout<<"所有元素的和为:"<<s<<endl;
        return 0;
    }
    
    运行结果:


    @ Mayuko

  • 相关阅读:
    [Luogu P3626] [APIO2009] 会议中心
    杭电 1869 六度分离 (求每两个节点间的距离)
    杭电 1874 畅通工程续 (求某节点到某节点的最短路径)
    最短路径模板
    杭电 2544 最短路径
    POJ 1287 Networking (最小生成树模板题)
    NYOJ 1875 畅通工程再续 (无节点间距离求最小生成树)
    POJ 2485 Highways (求最小生成树中最大的边)
    杭电 1233 还是畅通工程 (最小生成树)
    杭电 1863 畅通工程 (最小生成树)
  • 原文地址:https://www.cnblogs.com/mayuko/p/4567510.html
Copyright © 2011-2022 走看看