第六周项目二--我的数组类

2023-11-20 12:58
文章标签 数组 项目 第六周

本文主要是介绍第六周项目二--我的数组类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题及代码:

/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:test.cpp
*作    者:尚 月
*完成日期:2015年04月11日
*版 本 号:v1.0
*
*问题描述:下面的程序,因为存在指针类型的数据成员,需要能完成深复制的构造函数。请补充完整构造函数和析构函数。其中构造函数要完成下面三任务:
(1)为各成员赋值,按照深复制原则,其中arrayAddr应该是为保存数据新分配的arrayAddr应该是为保存数据新分配的连续空间的首地址;
(2)MyArray(int *a,int n)中,要将a指向的数组中的值,逐个的复制到新分配的arrayAddr指向的空间中;
(3)getMax()函数采用的策略是直接返回max(所以,计算max的工作,由构造函数完成)。
*输出描述:输出最大值,所有元素的和
*/
#include<iostream>
using namespace std;
class MyArray
{
private:
int *arrayAddr;   //保存一个有len个整数元素的数组的首地址
int len;          //记录动态数组的长度
int max;          //动态数组中的最大值(并非动态数组中必须要的数据成员)
public:
MyArray(int *a,int n)
{
len=n;
int i;
arrayAddr= new int[n];
for(i=0; i<n; ++i)
arrayAddr[i]=a[i];
max=arrayAddr[0];
for(i=1; i<n; +i++)
{
if(arrayAddr[i]>arrayAddr[i-1])
max=arrayAddr[i];
}
}
~MyArray()
{
delete []arrayAddr;
}
int getValue(int i);    //获得数组中下标为i的元素的值
int getLen();           //返回数组长度
int getMax();           //返回数组中的最大值
};
int MyArray::getValue(int i)
{
return arrayAddr[i];  //获得数组中下标为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;
}


运行结果:

学习总结:深复制里的构造函数,有一点儿晕了~~

这篇关于第六周项目二--我的数组类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/394758

相关文章

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热