From 67bb27e9f5beec4d8ca0a6c29f045d5f23d6f40f Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Sun, 28 Feb 2021 17:25:57 +0700 Subject: [lang] Reorganize language learning archive --- lang/cpptour/Vector.cc | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lang/cpptour/Vector.cc (limited to 'lang/cpptour/Vector.cc') 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 + +#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 lst) +: elem {new double[lst.size()]}, sz {static_cast (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]; +} -- cgit 1.4.1