diff options
author | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2021-02-28 17:25:57 +0700 |
---|---|---|
committer | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2021-02-28 17:25:57 +0700 |
commit | 67bb27e9f5beec4d8ca0a6c29f045d5f23d6f40f (patch) | |
tree | b677228d71b638dd6e423b037311ef0913ba66e7 /lang/cpptour/Vector.cc | |
parent | ee9b8fc921f48dc893808e1c9dbfbef321aa362c (diff) | |
download | cp-67bb27e9f5beec4d8ca0a6c29f045d5f23d6f40f.tar.gz |
[lang] Reorganize language learning archive
Diffstat (limited to 'lang/cpptour/Vector.cc')
-rw-r--r-- | lang/cpptour/Vector.cc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lang/cpptour/Vector.cc b/lang/cpptour/Vector.cc new file mode 100644 index 0000000..8f94345 --- /dev/null +++ b/lang/cpptour/Vector.cc @@ -0,0 +1,38 @@ +#include <stdexcept> + +#include "Vector.h" + +using namespace std; + +Vector::Vector (int s) +{ + if (s < 0) + throw length_error{"You're being negetive!"}; + elem = new double[s]; + sz = s; +} + +Vector::Vector (initializer_list<double> lst) +: elem {new double[lst.size()]}, sz {static_cast<int> (lst.size())} +{ + copy(lst.begin(), lst.end(), elem); +} + +Vector::~Vector () +{ + delete[] elem; +} + +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]; +} |