Advertisement
35657

Untitled

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