35657

Untitled

Jun 29th, 2024
546
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.74 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. template <typename T>
  6. class SimpleVector {
  7.  
  8. public:
  9.  
  10.     SimpleVector() : arr_(new T[10]), size_(10) {}
  11.  
  12.     SimpleVector(int size) : arr_(new T[size]), size_(size) {}
  13.  
  14.     SimpleVector(const SimpleVector& object) : arr_(new T[object.size_] {}), size_(object.size_) {
  15.         for (int i = 0; i < size_; i++) {
  16.             arr_[i] = object.arr_[i];
  17.         };
  18.     }
  19.  
  20.     SimpleVector& operator=(const SimpleVector& object) {
  21.         if (!(this == &object)) {
  22.             delete[] arr_;
  23.             arr_ = new T[object.size_];
  24.             size_ = object.size_;
  25.             for (int i = 0; i < size_; i++) {
  26.                 arr_[i] = object.arr_[i];
  27.             }
  28.         }
  29.         return *this;
  30.     }
  31.  
  32.     SimpleVector(SimpleVector&& object) : arr_(object.arr_), size_(object.size_) {
  33.         object.arr_ = nullptr;
  34.         object.size_ = 0;
  35.     }
  36.  
  37.     SimpleVector& operator=(SimpleVector&& object) {
  38.         if (!(this == &object)) {
  39.             delete[] arr_;
  40.             arr_ = object.arr_;
  41.             size_ = object.size_;
  42.             object.arr_ = nullptr;
  43.             object.size_ = 0;
  44.         }
  45.         return *this;
  46.     }
  47.  
  48.     T& operator[] (int index) {
  49.         if (index >= 0 && index < size_) {
  50.             return arr_[index];
  51.         }
  52.     }
  53.  
  54.     T operator[] (int index) const {
  55.         if (index >= 0 && index < size_) {
  56.             return arr_[index];
  57.         }
  58.     }
  59.  
  60.     int Size() const {
  61.         return size_;
  62.     }
  63.  
  64.     ~SimpleVector() {
  65.         delete[] arr_;
  66.     }
  67.  
  68. private:
  69.     T* arr_;
  70.     int size_;
  71. };
  72.  
  73. template <typename T>
  74. void sort(SimpleVector<T>& array) {
  75.     for (int k = 0; k < array.Size(); k++) {
  76.         for (int j = 0; j < array.Size() - 1; j++) {
  77.             if (array[j] > array[j + 1]) {
  78.                 T temp = array[j];
  79.                 array[j] = array[j + 1];
  80.                 array[j + 1] = temp;
  81.             }
  82.         }
  83.     }
  84. }
  85.  
  86.  
  87.  
  88. template<typename T>
  89. void print(const SimpleVector<T>& array) {
  90.     for (int i = 0; i < array.Size(); i++) {
  91.         cout << array[i] << " ";
  92.     }
  93.     cout << endl;
  94. }
  95.  
  96. int main() {
  97.     SimpleVector<int> vec;
  98.     for (int i = 0; i < vec.Size(); i++) {
  99.         vec[i] = rand() % 10;
  100.     }
  101.     for (int i = 0; i < vec.Size(); i++) {
  102.         cout << vec[i] << " ";
  103.     }
  104.     cout << endl;
  105.  
  106.     SimpleVector<int> int_vector;
  107.     for (int i = 0; i < int_vector.Size(); i++) {
  108.         int_vector[i] = rand() % 10;
  109.     }
  110.     cout << "int_vector:" << endl;
  111.     print(int_vector);
  112.     cout << endl;
  113.     cout << "Sorted int_vector:" << endl;
  114.     sort(int_vector);
  115.     print(int_vector);
  116.     cout << endl;
  117.  
  118.     SimpleVector<string> string_vector;
  119.     string_vector[0] = "two";
  120.     string_vector[1] = "seven";
  121.     string_vector[2] = "zero";
  122.     string_vector[3] = "four";
  123.     string_vector[4] = "one";
  124.     string_vector[5] = "three";
  125.     string_vector[6] = "five";
  126.     string_vector[7] = "six";
  127.     string_vector[8] = "eight";
  128.     string_vector[9] = "nine";
  129.     cout << "string_vector:" << endl;
  130.     print(string_vector);
  131.     cout << endl;
  132.     cout << "Sorted string_vector:" << endl;
  133.     sort(string_vector);
  134.     print(string_vector);
  135.     cout << endl;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment