diff options
Diffstat (limited to 'cpptour/Vector.cc')
-rw-r--r-- | cpptour/Vector.cc | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/cpptour/Vector.cc b/cpptour/Vector.cc index aa09eef..8f94345 100644 --- a/cpptour/Vector.cc +++ b/cpptour/Vector.cc @@ -12,14 +12,27 @@ Vector::Vector (int s) sz = s; } -double& Vector::operator[] (int i) +Vector::Vector (initializer_list<double> lst) +: elem {new double[lst.size()]}, sz {static_cast<int> (lst.size())} { - if (i < 0 || size() <= i) - throw out_of_range{"Vector::operator[]"}; - return elem[i]; + copy(lst.begin(), lst.end(), elem); +} + +Vector::~Vector () +{ + delete[] elem; } -int Vector::size () noexcept +int +Vector::size () noexcept { return sz; } + +double& +Vector::operator[] (int i) +{ + if (i < 0 || size() <= i) + throw out_of_range{"Vector::operator[]"}; + return elem[i]; +} |