diff --git a/src/sheet04.cpp b/src/sheet04.cpp index e099105..65a1e9f 100644 --- a/src/sheet04.cpp +++ b/src/sheet04.cpp @@ -1,19 +1,21 @@ #include #include #include +#include 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 ilist) : size(ilist.size()), vector(new double[size]) { + vec(std::initializer_list ilist) : vec_size(ilist.size()), vector(new double[vec_size]) { size_t i = 0; for(std::initializer_list::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; ivec_size) + { + return nan; + } + + return vector[idx]; + } }; \ No newline at end of file