内存:128  时间:1

题目描述

用习惯了的运算符操作新定义的类对象,这是OO方法给我们带来的便利。下面要为的五元向量(每个向量有5个元素)装备加法、数乘和输入输出的运算功能,请在begin至end部分,写上需要的代码并提交。
#include <iostream>
using namespace std;
const int N=5;   //向量中存储的数据个数,这里确定为5元向量
class MyVector
{
public:
    MyVector(){};    //构造函数
    MyVector(const MyVector &v);  //复制构造函数
    friend istream &operator>>(istream &input, MyVector &d);   //输入向量
    friend ostream &operator<<(ostream &output, const MyVector &d);  //输出向量
    MyVector operator+(const MyVector &d);  //向量相加,当前对象与d对应位置上的元素相加
    MyVector operator*(int n);   //向量数乘,当前对象的每个元素与n相乘
private:
    int data[N];      //在data数组中存储数据
};

MyVector::MyVector(const MyVector &d)
{
    for(int i=0; i<N; ++i)
        data[i]=d.data[i];
}
//**********begin*****************

//**********end*****************
int main()
{
    MyVector d1,d2;
    int n;
    cin>>d1;
    cin>>d2;
    cin>>n;
    cout<<"+: "<<d1+d2<<endl;
    cout<<"*: "<<d1*n<<endl;
    return 0;
}

输入

第一个五元向量,五个数之间用空格隔开
第二个五元向量,五个数之间用空格隔开
一个整数

输出

两个五元向量的和: 格式:前后加括号,两数之间用加逗号和一个空格
第一个五元向量与整数的数乘结果,格式同前
(运算规则:和运算为向量对应位置元素相加,数乘运算为各元素分别乘以给定的数。)

样例输入

1 25 41 16 98
5 67 9 55 121
3

样例输出

+: (6, 92, 50, 71, 219)
*: (3, 75, 123, 48, 294)

提示

代码如下


#include <iostream>
using namespace std;
const int N=5;   //向量中存储的数据个数
class MyVector
{
public:
    MyVector(){};    //构造函数
    MyVector(const MyVector &v);  //复制构造函数
    friend istream &operator>>(istream &input, MyVector &d);
    friend ostream &operator<<(ostream &output, const MyVector &d);
    MyVector operator+(const MyVector &d2);  //向量相加,当前对象与d2对应位置上的元素相加
    MyVector operator*(int n);   //向量数乘,当前对象的每个元素与n相乘
private:
    int data[N];      //在data数组中存储数据
};

MyVector::MyVector(const MyVector &d)
{
    for(int i=0; i<N; ++i)
        data[i]=d.data[i];
}istream &operator>>(istream &input, MyVector &d)
{
    for(int i=0; i<N; ++i)
        input>>d.data[i];
    return input;
}
ostream &operator<<(ostream &output, const MyVector &d)
{output<<"(";
    for(int i=0; i<N-1; ++i)
        output<<d.data[i]<<", ";
        output<<d.data[N-1]<<")";
    return output;
}
MyVector MyVector::operator+(const MyVector &d)
{
    MyVector c;
     for(int i=0; i<N; ++i)
        c.data[i]=data[i]+d.data[i];
     return c;
}
MyVector MyVector::operator*(int n)
{
    MyVector c;
     for(int i=0; i<N; ++i)
        c.data[i]=data[i]*n;
     return c;
}
int main()
{
    MyVector d1,d2;
    int n;
    cin>>d1;
    cin>>d2;
    cin>>n;
    cout<<"+: "<<d1+d2<<endl;
    cout<<"*: "<<d1*n<<endl;
    return 0;
}

代码来源于互联网,仅供参考!