vector.h

来自「提供矩阵以及向量的各种运算」· C头文件 代码 · 共 102 行

H
102
字号
#pragma once
#include<iostream>
using std::cout;
using std::cin;
using std::endl;


class vector
{
private:
	int n;
	double *vector1;
public:
	vector(int r):n(r)
	{
		vector1 = new double[n];
	}
	vector()
	{
		vector1 = NULL;
	}
	vector(vector&t)
	{
		n=t.n;
		vector1 = new double[n];
		for(int i=0;i<n;i++)
			vector1[i]=t.vector1[i];
	}
	void setVector(int i,double res)
	{
		vector1[i]=res;
	}
	double getVector(int i)
	{
		return vector1[i];
	}
	int getN(){return n;}
	vector& copy(vector& t)
	{
		n=t.getN();
		vector1 = new double[n];
		for(int i=0;i<n;i++)
			vector1[i]=t.vector1[i];
		return *this;
	}
	void input()
	{
		for(int i=0;i<n;i++)
			cin>>vector1[i];
		cout<<endl;
	}
	void output()
	{
		for(int i=0;i<n;i++)
			cout<<vector1[i]<<",";
		cout<<endl;
	}
	~vector()
	{
		delete[] vector1;
	}
	double operator * (const vector&vec)const
	{
		double res=0;
		for(int i=0;i<n;i++)
		{
			res+=vector1[i]*vec.vector1[i];
		}
		return res;
	}


	vector& operator +(const vector& t)const
	{
		vector* res = new vector(n);
		for(int i=0;i<n;i++)
			res->vector1[i]=vector1[i]+t.vector1[i];
		return *res;
	}


	vector& operator/(const double& t )const
	{
		vector* res = new vector(n);
		for(int i=0;i<n;i++)
			res->vector1[i]=vector1[i]/t;
		return *res;
	}


	double max()const
	{
		double max=0;
		for(int i=0;i<n;i++)
		{
			max = max>=fabs(vector1[i])?max:fabs(vector1[i]);
		}
		return max;
	}


};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?