Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include "Matrix.h"
- template<typename T>
- class TVector
- {
- private:
- T* arr;
- int size;
- int start;
- public:
- TVector<T>(int _size = 0, int startM = 0)
- {
- size = _size;
- //start = tmp.start;
- start = startM;
- arr = new T[size];
- for (int i = 0; i < _size; i++)
- {
- arr[i] = T(0);
- }
- }
- TVector(const TVector& tmp)
- {
- size = tmp.size;
- arr = new T[size];
- for (int i = 0; i < size; i++)
- {
- arr[i] = tmp.arr[i];
- }
- }
- ~TVector()
- {
- }
- TVector& operator=(TVector tmp)
- {
- if (size != tmp.size)
- {
- if (size != 0)
- {
- delete[]arr;
- }
- size = tmp.size;
- arr = new T[size];
- }
- start = tmp.start;
- for (int i = 0; i < size; i++)
- {
- arr[i] = tmp.arr[i];
- }
- return *this;
- }
- T& operator[](int k)
- {
- T res(0);
- if (k >= start && k < size + start)
- {
- res = arr[k - start];
- }
- return res;
- }
- TVector& operator +(TVector tmp)
- {
- TVector res;
- if (size == tmp.size)
- {
- res = *this;
- for (int i = 0; i < size; i++)
- {
- res.arr[i] = arr[i] + tmp.arr[i];
- }
- }
- return res;
- }
- TVector& operator -(TVector tmp)
- {
- TVector res;
- if (size == tmp.size)
- {
- res = *this;
- for (int i = 0; i < size; i++)
- {
- res.arr[i] = arr[i] - tmp.arr[i];
- }
- }
- return res;
- }
- TVector& operator*(TVector tmp)
- {
- T res(0);
- if (size == tmp.size && start == tmp.start)
- {
- for (int i = 0; i < size; i++)
- {
- res = arr[i] * tmp.arr[i];
- }
- }
- return res;
- }
- int GetSize()
- {
- return size;
- }
- TVector operator*(int k)
- {
- TVector res(*this);
- for (int i = 0; i < size; i++)
- {
- res.arr[i] *= k;
- }
- return res;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment