35657

Untitled

Jun 29th, 2024
501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.29 KB | None | 0 0
  1.  
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. class SimpleVector {
  7.  
  8. public:
  9.  
  10.     SimpleVector() : arr_(new int[10]), size_(10) {}
  11.  
  12.     SimpleVector(int size) : arr_(new int[size]), size_(size) {}
  13.  
  14.     SimpleVector(const SimpleVector& object) : arr_(new int[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 int[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.     int& operator[] (int index) {
  49.         if (index >= 0 && index < size_) {
  50.             return arr_[index];
  51.         }
  52.     }
  53.  
  54.     int 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.     int* arr_;
  70.     int size_;
  71. };
  72.  
  73.  
  74.  
  75. int main() {
  76.     SimpleVector vec;
  77.     for (int i = 0; i < vec.Size(); i++) {
  78.         vec[i] =  rand() % 10;
  79.     }
  80.     for (int i = 0; i < vec.Size(); i++) {
  81.         cout << vec[i] << " ";
  82.     }
  83.     cout << endl;
  84.  
  85.     /*SimpleVector<int> int_vector;
  86.     for (int i = 0; i < int_vector.Size(); i++) {
  87.         int_vector[i] = rand() % 10;
  88.     }
  89.     cout << "int_vector:" << endl;
  90.     print(int_vector);
  91.     cout << endl;
  92.     cout << "Sorted int_vector:" << endl;
  93.     sort(int_vector);
  94.     print(int_vector);
  95.     cout << endl;
  96.  
  97.     SimpleVector<string> string_vector;
  98.     string_vector[0] = "two";
  99.     string_vector[1] = "seven";
  100.     string_vector[2] = "zero";
  101.     string_vector[3] = "four";
  102.     string_vector[4] = "one";
  103.     string_vector[5] = "three";
  104.     string_vector[6] = "five";
  105.     string_vector[7] = "six";
  106.     string_vector[8] = "eight";
  107.     string_vector[9] = "nine";
  108.     cout << "string_vector:" << endl;
  109.     print(string_vector);
  110.     cout << endl;
  111.     cout << "Sorted string_vector:" << endl;
  112.     sort(string_vector);
  113.     print(string_vector);
  114.     cout << endl;*/
  115. }
Advertisement
Add Comment
Please, Sign In to add comment