Advertisement
Guest User

kek

a guest
Nov 19th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <cctype>
  4. #include <array>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. class Myexeption{};
  10.  
  11. template <typename T>
  12. class SimpleVector
  13. {
  14. public:
  15.     T* data;
  16.     size_t Size;
  17.     size_t capacity;
  18.     explicit SimpleVector(size_t size)
  19.     {
  20.         data = new T[size];
  21.         Size = size;
  22.         capacity = 0;
  23.     }
  24.     ~SimpleVector()
  25.     {
  26.         delete[](data);
  27.     }
  28.  
  29.  
  30.     T& operator[](size_t index)
  31.     {
  32.         return data[index];
  33.     }
  34.     T* begin()
  35.     {
  36.         return data;
  37.     }
  38.  
  39.     T* end()
  40.     {
  41.         return data + Size;
  42.     }
  43.  
  44.     [[nodiscard]] size_t Sizev() const
  45.     {
  46.         return Size;
  47.     }
  48.  
  49.     void PushBack(const T& value)
  50.     {
  51.         try
  52.         {
  53.             if (capacity >= Size) throw Myexeption();
  54.             data[capacity] = value;
  55.             capacity++;
  56.         }
  57.         catch (Myexeption)
  58.         {
  59.             cout << "This action is impossimble" << endl;
  60.         }
  61.  
  62.     }
  63.  
  64. };
  65. template <typename T>
  66. ostream& operator<< (ostream& os, SimpleVector<T> &vec)
  67. {
  68.     for (auto &el : vec)
  69.         os << el << " ";
  70.     return os << endl;
  71. }
  72.  
  73. int main()
  74. {
  75.     SimpleVector<int> vec(10);
  76.     for (int i = 0; i < 10; i++)
  77.         vec.PushBack(i);
  78.     cout << vec.Sizev() << endl;
  79.     cout << vec[9] << endl;
  80.     cout << vec;
  81.     vec.PushBack(69);
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement