HICONT

TVector

Oct 20th, 2022 (edited)
982
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.68 KB | None | 0 0
  1. #pragma once
  2. #include "Matrix.h"
  3. template<typename T>
  4. class TVector
  5. {
  6. private:
  7.     T* arr;
  8.     int size;
  9.     int start;
  10. public:
  11.     TVector<T>(int _size = 0, int startM = 0)
  12.     {
  13.         size = _size;
  14.         //start = tmp.start;
  15.         start = startM;
  16.         arr = new T[size];
  17.         for (int i = 0; i < _size; i++)
  18.         {
  19.             arr[i] = T(0);
  20.         }
  21.     }
  22.     TVector(const TVector& tmp)
  23.     {
  24.         size = tmp.size;
  25.         arr = new T[size];
  26.         for (int i = 0; i < size; i++)
  27.         {
  28.             arr[i] = tmp.arr[i];
  29.         }
  30.     }
  31.     ~TVector()
  32.     {
  33.  
  34.     }
  35.     TVector& operator=(TVector tmp)
  36.     {
  37.         if (size != tmp.size)
  38.         {
  39.             if (size != 0)
  40.             {
  41.                 delete[]arr;
  42.             }
  43.             size = tmp.size;
  44.             arr = new T[size];
  45.         }
  46.         start = tmp.start;
  47.         for (int i = 0; i < size; i++)
  48.         {
  49.             arr[i] = tmp.arr[i];
  50.         }
  51.         return *this;
  52.     }
  53.     T& operator[](int k)
  54.     {
  55.         T res(0);
  56.         if (k >= start && k < size + start)
  57.         {
  58.             res = arr[k - start];
  59.         }
  60.         return res;
  61.     }
  62.     TVector& operator +(TVector tmp)
  63.     {
  64.         TVector res;
  65.         if (size == tmp.size)
  66.         {
  67.             res = *this;
  68.             for (int i = 0; i < size; i++)
  69.             {
  70.                 res.arr[i] = arr[i] + tmp.arr[i];
  71.             }
  72.         }
  73.         return res;
  74.     }
  75.     TVector& operator -(TVector tmp)
  76.     {
  77.         TVector res;
  78.         if (size == tmp.size)
  79.         {
  80.             res = *this;
  81.             for (int i = 0; i < size; i++)
  82.             {
  83.                 res.arr[i] = arr[i] - tmp.arr[i];
  84.             }
  85.         }
  86.         return res;
  87.     }
  88.     TVector& operator*(TVector tmp)
  89.     {
  90.         T res(0);
  91.         if (size == tmp.size && start == tmp.start)
  92.         {
  93.             for (int i = 0; i < size; i++)
  94.             {
  95.                 res = arr[i] * tmp.arr[i];
  96.             }
  97.         }
  98.         return res;
  99.     }
  100.     int GetSize()
  101.     {
  102.         return size;
  103.     }
  104.     TVector operator*(int k)
  105.     {
  106.         TVector res(*this);
  107.         for (int i = 0; i < size; i++)
  108.         {
  109.             res.arr[i] *= k;
  110.         }
  111.         return res;
  112.     }
  113. };
Advertisement
Add Comment
Please, Sign In to add comment