首页 > 其他分享 >11.1

11.1

时间:2024-11-13 23:10:53浏览次数:1  
标签:vector const cout int 11.1 len Vector

实验6:原型模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解原型模式的动机,掌握该模式的结构;

2、能够利用原型模式解决实际问题。

 

[实验任务一]:向量的原型

用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。

实验要求:

 

类图

 

 

源代码:

浅克隆代码

#include<iostream>

using namespace std;

class Vector {

private:

int *p;

int len;

public:

Vector(int len);

Vector(const Vector &vector);

    Vector1(const Vector &vector);

~Vector();

int operator[](int i)const {

return p[i];

}

int &operator[](int i) {

return p[i];

}

int length()const {

return len;

}

};

Vector::Vector(int len):len(len) {

p=(int*)calloc(len,sizeof(int));

}

//拷贝构造函数

Vector::Vector(const Vector &vector) {

this->len=vector.len;

this->p=vector.p;

}

Vector::~Vector() {

free(p);

}

//打印

void display(const Vector &vector) {

int len=vector.length();

for(int i=0; i<len; i++) {

if(i==len-1) {

cout<<vector[i]<<endl;

} else {

cout<<vector[i]<<",";

}

}

}

int main() {

Vector v1(10);

for(int i=0; i<10; i++) {

v1[i]=i;

}

Vector v2=v1;

v2[6]=55;

v2[2]=20;

cout<<"浅克隆:"<<endl;

cout<<"更改copyVector后vector的数据:"<<endl;

display(v1);

cout<<"更改copyVector后copyVector的数据:"<<endl;

display(v2);

return 0;

}

 

 

 

深克隆:

 

#include<iostream>

using namespace std;

class Vector {

private:

int *p;

int len;

public:

Vector(int len);

Vector(const Vector &vector);

    Vector1(const Vector &vector);

~Vector();

int operator[](int i)const {

return p[i];

}

int &operator[](int i) {

return p[i];

}

int length()const {

return len;

}

};

Vector::Vector(int len):len(len) {

p=(int*)calloc(len,sizeof(int));

}

//拷贝构造函数

Vector::Vector(const Vector &vector) {

this->len=vector.len;

this->p=(int*)calloc(this->len,sizeof(int));

memcpy(this->p,vector.p,len*sizeof(int));

}

Vector::~Vector() {

free(p);

}

//打印

void display(const Vector &vector) {

int len=vector.length();

for(int i=0; i<len; i++) {

if(i==len-1) {

cout<<vector[i]<<endl;

} else {

cout<<vector[i]<<",";

}

}

}

int main() {

Vector v1(10);

for(int i=0; i<10; i++) {

v1[i]=i;

}

Vector v2=v1;

v2[6]=55;

v2[2]=20;

cout<<"深克隆:"<<endl;

cout<<"更改copyVector后vector的数据:"<<endl;

display(v1);

cout<<"更改copyVector后copyVector的数据:"<<endl;

display(v2);

return 0;

}

 

标签:vector,const,cout,int,11.1,len,Vector
From: https://www.cnblogs.com/zzqq1314/p/18545027

相关文章

  • 项目冲刺11.13
    这个作业属于哪个课程计科22级34班这个作业要求在哪里作业要求这个作业的目标进行为期七天的项目冲刺并记录前言本篇博客是项目冲刺的第五篇,七篇博客的汇总如下:博客汇总第一篇博客第二篇博客第三篇博客第四篇博客第五篇博客第六篇博客......
  • 24.11.12 JavaScript2
    prompt()confirm()这些函数会阻止js解析器(js解析器执行引擎读取运行js)执行不要使用2history对象历史记录对象对应浏览器前进后退按钮history在历史记录里back前进forward后退go0当前文档负数后......
  • 24.11.13 Javascript3
    Javascript31.dom元素获取查找元素的函数getElementById("id值")查找到唯一一个元素getElementsByClassName("class值")查找指定class的元素数组getElementsByTagName("标签名")查找指定标签名的元素......
  • 2024.11.13
    今日错题:一共10题,错误3题分析:(2)本文出现了语法错误,因为没有掌握关于“inone'sopinion”的语法所以导致了该题目的错误分析:(5)本题出现了2个不会的单词,其中一个单词有着关键性作用,出现了单词空缺,单词涉及薄弱,导致本题目出错,分析上下文无法推断出该单词的意思分析(8)本题单词出......
  • 11.13机器学习_KNN和模型选择调优
    7特征降维实际数据中,有时候特征很多,会增加计算量,降维就是去掉一些特征,或者转化多个特征为少量个特征特征降维其目的:是减少数据集的维度,同时尽可能保留数据的重要信息。特征降维的好处:减少计算成本:在高维空间中处理数据可能非常耗时且计算密集。降维可以简化模型,......
  • 2024.11.13 DP题单
    录制唱片你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的\(N\)(\(1\leqN\leq20\))首歌的版权。你打算从中精选一些歌曲,发行\(M\)(\(1\leqM\leq20\))张CD。每一张CD最多可以容纳\(T\)(\(1\leqT\leq20\))分钟的音乐,一首歌不能分装在两张CD中。CD数量可以用完,也可以......
  • 每日打卡 11.13
    includeusingnamespacestd;definemax10voidswap(int*px,int*py);voidbubble(inta[],intn);intmain(){intn,a[max];inti;cout<<"输入n"<<endl;cin>>n;cout<<"输入n个数"<<endl;for(i=0;......
  • 11.13闲话-委托与事件
    11.13闲话-委托与事件推荐前言其实委托与事件并不是必须品,如果你的码力超群,可以不使用oop、函数便可以切掉猪国杀,那完全不用学习委托与事件。其作用就像函数、封装类似,为节省大量的无意义代码而诞生。前言先考虑为什么使用函数,第一点就是因为我们会多次使用相同的代码,第二点......
  • 闲话 11.13
    On17:20:锣鼓似了,遂来乱写。上午早上来了先改昨天T4,会了打的就是快,吃完饭没多久A了。然后学考,左边两个化奥的,左前方CTH,正前方HDK,右边9G。进场发现这个挡板一点意义没有,根本挡不住。然后开做后发现,由于手必须要操作鼠标所以身体不得不前倾,这下看懂挡板的作用了。开题,直......
  • 2024.11.13 1902版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......