Advertisement
Timtsa

My Home work

Dec 3rd, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.61 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <algorithm>
  4. #define _CRT_SECURE_NO_DEPRECATE
  5. using namespace std;
  6.  
  7.  
  8. class MyVector
  9. {
  10. private:
  11.     size_t size;
  12.     size_t capacity;
  13.     int* data;
  14.  
  15. public:
  16.     MyVector()
  17.     {
  18.         size = capacity = 0;
  19.         data = nullptr;
  20.     }
  21.  
  22.     MyVector(size_t _size, int value = 0)
  23.     {
  24.         size = _size;
  25.         capacity = size + size / 2;
  26.  
  27.         data = new int[capacity];
  28.         fill(data, data + capacity, 0);
  29.     }
  30.    
  31.         MyVector(int arr[], size_t _size) //  Добавление массива в качестве аргумента в конструктор
  32.         {
  33.        
  34.             capacity = _size;
  35.             size = capacity - capacity/2;
  36.             data = arr;
  37.         }
  38.  
  39.  
  40.  
  41.         MyVector(int fst, int last, int step)
  42.         {
  43.             if (fst < last)
  44.  
  45.             {
  46.                 size = last/step;
  47.                 capacity = size + size / 2;    // - Конструктор, который принимает в качестве
  48.                 data = new int[capacity];         //  параметра три числа, два из которых задают ,
  49.                 fst = fst - step;                 //  диапазон чисел, который будет использоваться в качестве элементов массива
  50.                 for (size_t i = 0; i < size; i++)
  51.                 {
  52.                     data[i] =fst= fst+step;
  53.                 }
  54.  
  55.             }
  56.             else if (fst>last)
  57.             {
  58.                 size = fst / step;
  59.                 capacity = size + size / 2;
  60.                 data = new int[capacity];
  61.                 fst = fst + step;
  62.                 for (size_t i = 0; i < size; i++)
  63.                 {
  64.                     data[i] = fst=fst-step;
  65.                 }
  66.             }
  67.        
  68.         }
  69.  
  70.     /*MyVector(const MyVector& other)
  71.     {
  72.         this->size = other.size;
  73.         this->capacity = other.capacity;
  74.  
  75.         this->data = new int[capacity];
  76.         copy(other.data, other.data + other.capacity, this->data);
  77.     }*/
  78.  
  79.     int getSize()
  80.         {
  81.             return size;//возвращает размер массива вектора
  82.         }
  83.    
  84.     int getCapacity()
  85.     {
  86.         return capacity; //возвращает размер буфер
  87.     }
  88.    
  89.     void reserve(size_t _capacity)
  90.     {
  91.         if (_capacity<size) //увеличение буфера
  92.         {
  93.             cout << "Hay man I can't do it!" << endl;
  94.         }
  95.         else if (capacity>size)
  96.         {
  97.             capacity = _capacity;
  98.         }
  99.     }
  100.  
  101.     void clear()
  102.     {
  103.         data = nullptr;\\ Очищает вектор
  104.         size = 0;
  105.     }
  106.  
  107.     void print()
  108.     {
  109.         for (size_t i = 0; i < size; i++)
  110.         {
  111.             cout << setw(4) << data[i];    
  112.         }
  113.         cout << endl;
  114.     }
  115.  
  116.     void push_back(int value)
  117.     {
  118.         if (size < capacity)
  119.         {
  120.             data[size] = value;
  121.             size++;
  122.         }
  123.        
  124.     }
  125.     ~MyVector()
  126.     {
  127.         delete[] data;
  128.         //cout << "d'tor" << endl;
  129.     }
  130. };
  131. int main()
  132. {
  133.     int arr[5]{ 1,2 };
  134.     MyVector v1(1,6,2);
  135.     v1.print();
  136.     v1.push_back(-1);
  137.     v1.print();
  138.  
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement