第2关:可变长整型数组类(成长版)

题目:

 给出的头文件:

#include <iostream>
#include "array.h"
using namespace std;int main()
{Array a1;int n;cin >> n;for (int i = 0;i != n; ++i) {int t;cin >> t;a1.Push_back(t);}Array a2(a1);cout << "\nThere're " << a2.length() << " numbers:" << endl;a2.Print();a2.Push_back(10);cout << "\nAfter push_back,";cout << "there're " << a2.length() << " numbers:" << endl;a2.Print();Array a3;a3.Print();a3 = a1;cout << "After operator=,";cout << "there're " << a3.length() << " numbers:" << endl;a3.Print();
}

 考点:

动态空间分配

法一:new

array.h

/**********Program**********/class Array
{private:int size;int *ptr;public:Array();Array(const Array& a);~Array();void Push_back(int v);Array& operator=(const Array& a);int length();void Print();
};/**********  End  **********/ 

array.cpp

/**********Program**********/
#include"array.h"
#include <iostream>
using namespace std;Array::Array(const Array& a)
{if(a.size>0){size=a.size;ptr=new int[size];for(int i=0;i<size;i++)ptr[i]=a.ptr[i];}
}
Array::Array()
{size=0;ptr=new int[size];//可以理解为构建数组ptr[size]
}Array::~Array(){delete []ptr;ptr=NULL;
}Array& Array::operator=(const Array& a)
{delete []ptr;if(a.size>0){size=a.size;ptr=new int[size];for(int i=0;i<size;i++){ptr[i]=a.ptr[i];}}else ptr=NULL;
}void Array::Print()
{if(size!=0){for(int i=0;i<size;i++){cout<<ptr[i];if(i!=size-1)cout<<" ";}cout<<"\n";}elsecout<<"\nIt's empty!\n";
}
void Array::Push_back(int v)
{int *temp=new int[size+1];for(int i=0;i<size;i++)temp[i]=ptr[i];temp[size]=v;delete []ptr;ptr=temp;size++;
}
int Array::length()
{return size;
}/**********  End  **********/ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/209203.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

逸学java【初级菜鸟篇】9.4 泛型

hi&#xff0c;我是逸尘&#xff0c;一起学java吧 泛型概述 泛型是我们在定义某一个类型规格的时候使用的泛指&#xff0c;我们预先定义一个大方向&#xff0c;防止路线错误。 实质上是程序员定义的安全类型&#xff0c;Object是顶级父类&#xff0c;在没有泛型很多程序员为了…

【iOS】知乎日报

文章目录 前言一、首页1.网络的异步请求2.避免同一网络请求执行多次3.下拉刷新与上拉加载的实现下拉刷新上拉加载 二、网页1.webView的实现2.webView的滑动加载3.网页与首页内容的同步更新 三、评论区Masonory实现行高自适应 四、收藏中心通过FMDB实现数据持久化1.创建或打开数…

京东内部员工,爆料工资与公积金收入!

精彩回顾&#xff1a;进了央企&#xff0c;拿了户口&#xff0c;却感觉被困住了。 每个企业都有它的一套规则&#xff0c;哪些人适合加薪&#xff0c;哪些人适合拿奖金&#xff0c;哪些人适合给股票期权等等。但是说实话&#xff0c;很多人都只能拿底薪&#xff0c;这些福利啥的…

2018-2022年富时罗素 ESG评分数据

2018-2022年富时罗素 ESG评分数据 1、时间&#xff1a;2018-2022年 2、指标&#xff1a;证券代码、证券简称、富时罗素ESG评分、 3、说明&#xff1a; 富时罗素ESG评级体系评估了中国大陆、香港、欧洲以及美国等市场上1800家中国上市企业股票&#xff0c;评估了7200多种证券…

详解深度学习中的图神经网络GNN

引言 图神经网络GNN是深度学习的一个分支。 深度学习的四个分支对应了四种常见的数据格式&#xff0c;前馈神经网络FNN处理表格数据&#xff0c;表格数据可以是特征向量&#xff0c;卷积神经网络CNN处理图像数据&#xff0c;循环神经网络RNN处理时序数据&#xff0c;图神经网…

CSGO游戏搬砖市场下跌分析,是跑还是入?

CSGO市场下跌分析&#xff0c;是跑还是入&#xff1f; 以下所有都是阿阳本人最近几年观察市场和踩坑的一点经验&#xff0c;由于篇幅不长所以肯定会很浅薄&#xff0c;大伙下嘴轻点 。 首先现在真的是CSGO市场最低点吗&#xff1f;后续还会跌吗&#xff1f;我们究竟是该继续观…

C++三大特性——继承

目录 一.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符​编辑 1.2.3继承基类成员访问方式的变化 二.基类和派生类对象赋值转换 三.继承中的作用域 四.派生类的默认成员函数 五.继承与友元 六.继承与静态成员 一.继承的概念及…

stable-diffusion官方版本地复现手册(2023年4月10日)

stable diffusion v1.4官方版&#xff08;CompVis&#xff09;本地复现手册 主页&#xff1a;https://github.com/wjxpro 邮箱&#xff1a;804359553qq.com 文章目录 **stable diffusion v1.4官方版&#xff08;CompVis&#xff09;本地复现手册**〇、说明环境 一、准备1. [s…

leetcode:环形链表的入环点

题目描述 题目链接:力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目分析 我们假设起点到环的入口点的距离是L&#xff0c;入口点到相遇点的距离是X&#xff0c;环的长度是C 那么画图我们可以得知&#xff1a; 从开始到相遇时slow走的距离是LX从…

HarmonyOS ArkTS HTTP数据请求(九)

1 概述 日常生活中我们使用应用程序看新闻、发送消息等&#xff0c;都需要连接到互联网&#xff0c;从服务端获取数据。例如&#xff0c;新闻应用可以从新闻服务器中获取最新的热点新闻&#xff0c;从而给用户打造更加丰富、更加实用的体验。 那么要实现这样一种能实时从服务…

B033-Servlet交互 JSP

目录 ServletServlet的三大职责跳转&#xff1a;请求转发和重定向请求转发重定向汇总请求转发与重定向的区别用请求转发和重定向完善登录 JSP第一个JSP概述注释设置创建JSP文件默认字符编码集 JSP的java代码书写JSP的原理三大指令九大内置对象改造动态web工程进行示例内置对象名…

猫罐头多久喂一次?好用的猫罐头牌子推荐

猫爱吃猫罐头&#xff0c;包含各种美味&#xff0c;提供营养和口感。但喂猫吃罐头需技巧和耐心&#xff0c;以确保猫健康快乐成长。 作为一个从业宠物营养师7年的人&#xff0c;可以说对于猫咪的食物很有研究和猫罐头品牌选购上&#xff0c;我有自己的见解。 一、猫罐头多久喂…