Advertisement
Guest User

Untitled

a guest
Dec 14th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. template<typename T>
  6. class Vector
  7. {
  8. private:
  9.     T *Array;
  10.     int Size;
  11.     int maxSize;
  12. public:
  13.     Vector()
  14.     {
  15.         Array = NULL;
  16.         Size = 0;
  17.         maxSize = 1;
  18.     }
  19.  
  20.     ~Vector()
  21.     {
  22.     delete[] Array;
  23.     }
  24.  
  25.     Vector(int n)
  26.     {
  27.         Size = n;
  28.         Array = new T[n];
  29.         maxSize = n * 2;
  30.     }
  31.  
  32.     Vector(const Vector<T> &Construct)
  33.     {
  34.         Array = new T[Construct.maxSize];
  35.         int i = 0;
  36.         while(i < Construct.Size)
  37.         {
  38.             Array[i] = Construct.Array[i];
  39.             i++;
  40.         }
  41.  
  42.         Size = Construct.Size;
  43.         maxSize = Construct.maxSize;
  44.     }
  45.  
  46.     int Lenght()
  47.     {
  48.         return Size;
  49.     }
  50.  
  51.     void Push_back(T Value)
  52.     {
  53.         if(Size == maxSize)
  54.         {
  55.             maxSize = maxSize * 2;
  56.             T *cashArray = new T[maxSize];
  57.  
  58.             int i = 0;
  59.             while(i < Size)
  60.             {
  61.                 cashArray[i] = Array[i];
  62.                 i++;
  63.             }
  64.             delete[] Array;
  65.  
  66.             Array = cashArray;
  67.             delete[] cashArray;
  68.         }
  69.         Array[Size] = Value;
  70.         Size++;
  71.     }
  72.  
  73.     void Pop_back()
  74.     {
  75.         if(Size > 0)
  76.         {
  77.             T *cashArray = new T[maxSize];
  78.  
  79.             int i = 0;
  80.             while(i < Size-1)
  81.             {
  82.                 cashArray[i] = Array[i];
  83.                 i++;
  84.             }
  85.             delete[] Array;
  86.  
  87.             Array = cashArray;
  88.  
  89.             Size--;
  90.         }
  91.     }
  92.  
  93.     void Reserve(int border)
  94.     {
  95.         T *cashArray = new T[border];
  96.  
  97.         int i = 0;
  98.         while(i < border)
  99.         {
  100.             cashArray[i] = Array[i];
  101.             i++;
  102.         }
  103.         delete[] Array;
  104.  
  105.         Array[i] = cashArray[i];
  106.  
  107.         Size = border;
  108.     }
  109.  
  110.     void Resize(int FirstB, int SecondB)
  111.     {
  112.         if(FirstB > SecondB) swap(FirstB, SecondB);
  113.  
  114.         FirstB--;
  115.         int newSize = SecondB - FirstB;
  116.         if(Size - SecondB < 0) newSize = Size - FirstB;
  117.         T *cashArray = new T[newSize];
  118.  
  119.         int i = 0;
  120.         while(i < newSize)
  121.         {
  122.             cashArray[i] = Array[FirstB];
  123.             i++;
  124.             FirstB++;
  125.         }
  126.         delete[] Array;
  127.  
  128.         Array = cashArray;
  129.  
  130.         Size = newSize;
  131.     }
  132.  
  133.     T& operator[](int index)
  134.     {
  135.         return Array[index];
  136.     }
  137. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement