Advertisement
RobertDeMilo

RB3.9 Добавляем в вектор begin и end 2

Apr 16th, 2024
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. template <typename T>
  8. class SimpleVector
  9. {
  10. public:
  11.     explicit SimpleVector(size_t size)
  12.     {
  13.         data = new T[size];
  14.         end_ = data + size;
  15.     }
  16.    
  17.     ~SimpleVector()
  18.     {
  19.         delete[]data;
  20.     }
  21.    
  22.     T& operator[](size_t index)
  23.     {
  24.         //return *(data + index);
  25.         return data[index];
  26.     }
  27.    
  28.     T* begin()
  29.     {
  30.         return data;
  31.     }
  32.    
  33.     T* end()
  34.     {
  35.         return end_;
  36.     }
  37.    
  38.     const T* begin() const // const T* указатель на константу
  39.     {
  40.         return data;
  41.     }
  42.    
  43.     const T* end() const
  44.     {
  45.         return end_;
  46.     }
  47.  
  48. private:
  49.     T* data;
  50.     T* end_;
  51. };
  52.  
  53. template<typename T>
  54. void Print(const SimpleVector<T>& v)
  55. {
  56.     /*for (const auto& x : v)
  57.     {
  58.         cout << x << ' ';
  59.     }*/
  60.     for (auto i = v.begin(); i != v.end(); ++i)
  61.     {
  62.         cout << *i << ' ';
  63.         //*i = 42;
  64.     }
  65.     cout << endl;
  66. }
  67.  
  68. int main()
  69. {
  70.     SimpleVector<int> sv(4);
  71.    
  72.     sv[0] = 5;
  73.     sv[1] = 3;
  74.     sv[2] = 4;
  75.     sv[3] = -1;
  76.  
  77.     sort(sv.begin(), sv.end());
  78.     Print(sv);
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement