idk
This commit is contained in:
parent
7715d07891
commit
19a290bebe
@ -1,19 +1,21 @@
|
||||
#include <cstddef>
|
||||
#include <array>
|
||||
#include <initializer_list>
|
||||
#include <cmath>
|
||||
class vec
|
||||
{
|
||||
private:
|
||||
unsigned size;
|
||||
const double nan = std::nan("");
|
||||
unsigned vec_size;
|
||||
double *vector;
|
||||
public:
|
||||
vec(size_t size) : size(size), vector(new double[size]) {}
|
||||
vec(size_t size, double ival) : size(size), vector(new double[size])
|
||||
vec(size_t size) : vec_size(size), vector(new double[size]) {}
|
||||
vec(size_t size, double ival) : vec_size(size), vector(new double[size])
|
||||
{
|
||||
for(size_t i=0; i<size;++i) { vector[i]=ival; }
|
||||
}
|
||||
|
||||
vec(std::initializer_list<double> ilist) : size(ilist.size()), vector(new double[size]) {
|
||||
vec(std::initializer_list<double> ilist) : vec_size(ilist.size()), vector(new double[vec_size]) {
|
||||
size_t i = 0;
|
||||
for(std::initializer_list<double>::iterator itr = ilist.begin(); itr!=ilist.end();++itr)
|
||||
{
|
||||
@ -21,12 +23,55 @@ class vec
|
||||
}
|
||||
}
|
||||
|
||||
~vec() {delete[] vector; }
|
||||
vec(const vec &m) : vector(new double[m.size])
|
||||
~vec() {delete[] vector;}
|
||||
vec(const vec &m) : vec_size(m.vec_size), vector(new double[vec_size])
|
||||
{
|
||||
for(size_t i=0; i<m.size;++i)
|
||||
for(size_t i=0; i<vec_size;++i)
|
||||
{
|
||||
vector[i] = m.vector[i];
|
||||
}
|
||||
}
|
||||
|
||||
vec& operator= (const vec &m)
|
||||
{
|
||||
if(this!=&m)
|
||||
{
|
||||
vec_size = m.vec_size;
|
||||
delete[] vector;
|
||||
vector = new double[vec_size];
|
||||
|
||||
for(size_t i = 0; i<vec_size; ++i)
|
||||
{
|
||||
vector[i] = m.vector[i];
|
||||
}
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
vec(vec &&m) : vec_size(m.vec_size), vector(new double[vec_size])
|
||||
{
|
||||
vector = std::move(m.vector);
|
||||
}
|
||||
|
||||
vec& operator= (vec &&m)
|
||||
{
|
||||
vec_size = m.vec_size;
|
||||
vector = std::move(m.vector);
|
||||
return *this;
|
||||
}
|
||||
|
||||
size_t size()
|
||||
{
|
||||
return vec_size;
|
||||
}
|
||||
|
||||
double& operator[] (size_t idx)
|
||||
{
|
||||
if(idx>vec_size)
|
||||
{
|
||||
return nan;
|
||||
}
|
||||
|
||||
return vector[idx];
|
||||
}
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user