Advertisement
35657

Untitled

Jun 7th, 2023
624
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.78 KB | None | 0 0
  1. // Задание:
  2. // 1) реализовать шаблонный вариант SimpleVector
  3. // 2) реализовать две отдельные шаблонные функции:
  4. // void print(...) ... для вывода элементов любого варианта SimpleVector
  5. // void sort(...) ... для сортировки любого варианта SimpleVector
  6. // 3) проверить работоспособность кода, раскомментировав строки в main
  7.  
  8.  
  9. #include <iostream>
  10.  
  11. using namespace std;
  12.  
  13. class SimpleVector {
  14.  
  15. public:
  16.  
  17.     SimpleVector() : arr_(new int[10]), size_(10) {}
  18.  
  19.     SimpleVector(int size) : arr_(new int[size]), size_(size) {}
  20.  
  21.     SimpleVector(const SimpleVector& object) : arr_(new int[object.size_]{}), size_(object.size_) {
  22.         for (int i = 0; i < size_; i++) {
  23.             arr_[i] = object.arr_[i];
  24.         };
  25.     }
  26.  
  27.     SimpleVector& operator=(const SimpleVector& object) {
  28.         if (!(this == &object)) {
  29.             delete[] arr_;
  30.             arr_ = new int[object.size_];
  31.             size_ = object.size_;
  32.             for (int i = 0; i < size_; i++) {
  33.                 arr_[i] = object.arr_[i];
  34.             }
  35.         }
  36.         return *this;
  37.     }
  38.  
  39.     SimpleVector(SimpleVector&& object) : arr_(object.arr_), size_(object.size_) {
  40.         object.arr_ = nullptr;
  41.         object.size_ = 0;
  42.     }
  43.  
  44.     SimpleVector& operator=(SimpleVector&& object) {
  45.         if (!(this == &object)) {
  46.             delete[] arr_;
  47.             arr_ = object.arr_;
  48.             size_ = object.size_;
  49.             object.arr_ = nullptr;
  50.             object.size_ = 0;
  51.         }
  52.         return *this;
  53.     }
  54.  
  55.     int& operator[] (int index) {
  56.         if (index >= 0 && index < size_) {
  57.             return arr_[index];
  58.         }
  59.     }
  60.  
  61.     int& operator[] (int index) const {
  62.         if (index >= 0 && index < size_) {
  63.             return arr_[index];
  64.         }
  65.     }
  66.  
  67.     int Size() const {
  68.         return size_;
  69.     }
  70.  
  71.     ~SimpleVector() {
  72.         delete[] arr_;
  73.     }
  74.  
  75. private:
  76.     int* arr_;
  77.     int size_;
  78. };
  79.  
  80.  
  81.  
  82. int main() {
  83.     SimpleVector vec;
  84.     for (int i = 0; i < vec.Size(); i++) {
  85.         vec[i] =  rand() % 10;
  86.     }
  87.     for (int i = 0; i < vec.Size(); i++) {
  88.         cout << vec[i] << " ";
  89.     }
  90.     cout << endl;
  91.  
  92.     /*SimpleVector<int> IntVector;
  93.     for (int i = 0; i < IntVector.Size(); i++) {
  94.         IntVector[i] = rand() % 10;
  95.     }
  96.     cout << "IntVector:" << endl;
  97.     print(IntVector);
  98.     cout << endl;
  99.     cout << "Sorted IntVector:" << endl;
  100.     sort(IntVector);
  101.     print(IntVector);
  102.     cout << endl;
  103.  
  104.     SimpleVector<string> StringVector;
  105.     StringVector[0] = "two";
  106.     StringVector[1] = "seven";
  107.     StringVector[2] = "zero";
  108.     StringVector[3] = "four";
  109.     StringVector[4] = "one";
  110.     StringVector[5] = "three";
  111.     StringVector[6] = "five";
  112.     StringVector[7] = "six";
  113.     StringVector[8] = "eight";
  114.     StringVector[9] = "nine";
  115.     cout << "StringVector:" << endl;
  116.     print(StringVector);
  117.     cout << endl;
  118.     cout << "Sorted StringVector:" << endl;
  119.     sort(StringVector);
  120.     print(StringVector);
  121.     cout << endl;*/
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement