📄 vector.h
字号:
#include<iostream.h>
class Vector {
public:
Vector(unsigned length);
Vector(double *data, unsigned length);
double& operator() (unsigned entry);
double operator() (unsigned entry) const;
~Vector();
Vector& operator= (Vector& v);
Vector& operator+= (Vector& v);
Vector& operator-= (Vector& v);
Vector& operator*= (double a);
unsigned length() {return length_; };
void clear(){for(unsigned i=0;i<length_;i++) data_[i]=0;};
bool rescale(unsigned length);
// ...
protected:
unsigned length_;
double* data_;
};
inline
Vector& Vector::operator= (Vector& v){
unsigned l = v.length();
data_ = new double[l];
for(unsigned i=1;i<=l;i++)
data_[i-1] = v(i);
}
inline
Vector& Vector::operator+= (Vector& v){
unsigned l = v.length();
if(l>length_) l = length_; //若长度不等,只加有效部分
for(unsigned i=1;i<=l;i++)
data_[i-1] += v(i);
}
inline
Vector& Vector::operator-= (Vector& v){
unsigned l = v.length();
if(l>length_) l = length_; //若长度不等,只加有效部分
for(unsigned i=1;i<=l;i++)
data_[i-1] -= v(i);
}
inline
Vector& Vector::operator*= (double a){
for(unsigned i=1;i<=length_;i++)
data_[i-1] *= a;
}
inline
Vector::Vector(unsigned length)
: length_ (length),
data_ (new double[length])
{
if (length == 0)
void();
// throw BadIndex("Vector constructor has 0 size");
unsigned l = length;
for(unsigned i=0;i<l;i++) data_[i]=0.0;
}
inline
Vector::Vector(double* data, unsigned length)
: length_ (length),
data_ (data)
{}
inline
bool Vector::rescale(unsigned length)
{
if(length==length_) return false;
length_ = length;
delete[] data_;
data_ = new double[length];
clear();
return true;
}
inline
Vector::~Vector()
{
delete[] data_;
}
inline
double& Vector::operator() (unsigned entry)
{
if (entry > length_) void();
// throw BadIndex("Vector subscript out of bounds");
return data_[entry-1];
}
inline
double Vector::operator() (unsigned entry) const
{
if (entry > length_) void();
// throw BadIndex("Vector subscript out of bounds");
return data_[entry-1];
}
/*
int main()
{
Vector v(10);
v(5) = 106.15;
v *=3;
cout << v(5);
getchar();
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -