当前位置:网站首页>OOP 向量加减(友元+拷贝构造)
OOP 向量加减(友元+拷贝构造)
2022-06-25 04:01:00 【SZU治愈系BUG】
目录
题目描述
定义一个CVector类如下:
class CVector
{
private:
int *data; //存储n维向量
int n; //向量维数
public:
CVector(int n1, int *a);
CVector(CVector &c);
~CVector() { delete data; }
void print();
friend CVector Add(const CVector V1, const CVector V2);
friend CVector Sub(const CVector V1, const CVector V2);
};
要求如下:
根据输入和输出实现CVector类的成员函数,并分别实现友元函数Add、Sub来实现两向量的相加和相减。
输入
第一行,输入测试次数t
每组测试数据格式如下:
向量维数n
第一个n维向量值
第二个n维向量值
输出
对每组测试数据,输出它们相加和相减后的结果
输入样例1
2
3
1 2 3
4 5 6
5
1 2 3 4 5
-1 2 4 6 10
输出样例1
5 7 9
-3 -3 -3
0 4 7 10 15
2 0 -1 -2 -5
AC代码
#include<iostream>
#include<string>
#include<algorithm>
#include<cmath>
#include<iomanip>
using namespace std;
class CVector {
private:
int *data; //存储n维向量
int n; //向量维数
public:
CVector(int n1, int *a);
CVector(const CVector &c);
~CVector() {
delete data;
}
void print();
friend CVector Add(const CVector V1, const CVector V2);
friend CVector Sub(const CVector V1, const CVector V2);
};
CVector::CVector(int n1,int *a){
n=n1;
data=new int[n1];
for(int i=0;i<n1;i++)
data[i]=a[i];
}
CVector::CVector(const CVector &c){
n=c.n;
data=new int[c.n];
for(int i=0;i<c.n;i++)
data[i]=c.data[i];
}
void CVector::print(){
for(int i=0;i<n-1;i++)
cout<<data[i]<<' ';
cout<<data[n-1]<<endl;
}
CVector Add(const CVector V1, const CVector V2){
CVector temp(V1);
for(int i=0;i<temp.n;i++)
temp.data[i]=V1.data[i]+V2.data[i];
return temp;
}
CVector Sub(const CVector V1, const CVector V2){
CVector temp(V1);
for(int i=0;i<temp.n;i++)
temp.data[i]=V1.data[i]-V2.data[i];
return temp;
}
int main() {
int t,n,i;
cin>>t;
while(t--){
cin>>n;
int *p=new int [n];
for(i=0;i<n;i++)
cin>>p[i];
CVector a(n,p);
for(i=0;i<n;i++)
cin>>p[i];
CVector b(n,p);
Add(a,b).print();
Sub(a,b).print();
delete[] p;
}
}边栏推荐
- GBASE 8s存儲過程語法結構
- 什么是持久化?redis 持久化中的RDB和AOF是什么?
- Laravel document sorting 1. Installation and Preliminary Configuration
- 深度学习——几种学习类型
- Lecture record: data processing methods and applications of various spatial geodetic techniques
- Gbase 8s parallel operation problem scenario description
- Read lsd-slam: large scale direct monolithic slam
- Structure syntaxique des procédures stockées gbase 8S
- 微信小程序父子组件之间传值
- GBASE 8s 索引R树
猜你喜欢

NFT insider 63: the sandbox reached a cooperation with Time magazine, and YGG established Spain's subdao

关于TCP连接四次握手(或者叫四次挥手)的详细总结

Gbase 8s overall architecture

Shutter fittedbox component

LabVIEW development gas regulator

什么是存储引擎以及MySQL常见的三种数据库存储引擎

GBASE 8s 总体架构
![[openwrt] we recommend a domestically developed version of openwrt, an introduction to istoreos. It is very easy to use. It is mainly optimized. It solves the problem of Sinicization.](/img/62/6152d5a30c92a340cb286c7b1cbc54.png)
[openwrt] we recommend a domestically developed version of openwrt, an introduction to istoreos. It is very easy to use. It is mainly optimized. It solves the problem of Sinicization.

cnpm : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。

OBS Browser+浏览器的基本使用
随机推荐
坐标系左乘右乘
Introduction to intstream API
kenlm
CTF_ Web: deserialization learning notes (I) classes and objects in PHP
Gbase 8s stored procedure flow control
Laravel document sorting 8. Middleware
Laravel document sorting 4. Controller
Gbase 8s overall architecture
小白学习MySQL - 统计的'投机取巧'
BSC smart contract dividend mainstream currency | including marketing wallet | deflation | reflow | dividend free token | available for direct deployment
Introduction to the isolation level of gbase 8s
GBASE 8s存儲過程語法結構
mysql的tinyint字段类型判断的疑惑
使用文本分析识别一段文本中的主要性别
Gbase 8s memory management
Gbase 8s stored procedure syntax structure
Gbase 8s parallel operation problem scenario description
Laravel document sorting 9. Blade template
ThinkPHP is integrated with esaywechat. What's wrong with wechat payment callback without callback?
js的sort()函数