Advertisement
35657

Untitled

Mar 14th, 2024
505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.07 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  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 initializer_list<T>& list) : arr_(new T[list.size()]), size_(list.size()) {
  16.         int i = 0;
  17.         for (const T& element : list) {
  18.             arr_[i] = element;
  19.             i++;
  20.         }
  21.     }
  22.  
  23.     SimpleVector(const SimpleVector& object) : arr_(new T[object.size_]{}), size_(object.size_) {
  24.         for (int i = 0; i < size_; i++) {
  25.             arr_[i] = object.arr_[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. template<typename T>
  83. void print(const SimpleVector<T>& vec) {
  84.     for (int i = 0; i < vec.Size(); i++) {
  85.         cout << vec[i] << " ";
  86.     }
  87.     cout << endl;
  88. }
  89.  
  90. template<typename T>
  91. void sort(SimpleVector<T>& vec) {
  92.     for (int i = 0; i < vec.Size(); i++) {
  93.         for (int j = 0; j < vec.Size() - 1; j++) {
  94.             if (vec[j] > vec[j + 1]) {
  95.                 T temp = vec[j];
  96.                 vec[j] = vec[j + 1];
  97.                 vec[j + 1] = temp;
  98.             }
  99.         }
  100.     }
  101. }
  102.  
  103. int main() {
  104.     SimpleVector<int> vec;
  105.     for (int i = 0; i < vec.Size(); i++) {
  106.         vec[i] = rand() % 10;
  107.     }
  108.     for (int i = 0; i < vec.Size(); i++) {
  109.         cout << vec[i] << " ";
  110.     }
  111.     cout << endl;
  112.  
  113.     SimpleVector<int> IntVector;
  114.     for (int i = 0; i < IntVector.Size(); i++) {
  115.         IntVector[i] = rand() % 10;
  116.     }
  117.     cout << "IntVector:" << endl;
  118.     print(IntVector);
  119.     cout << endl;
  120.     cout << "Sorted IntVector:" << endl;
  121.     sort(IntVector);
  122.     print(IntVector);
  123.     cout << endl;
  124.  
  125.     SimpleVector<string> StringVector;
  126.     StringVector[0] = "two";
  127.     StringVector[1] = "seven";
  128.     StringVector[2] = "zero";
  129.     StringVector[3] = "four";
  130.     StringVector[4] = "one";
  131.     StringVector[5] = "three";
  132.     StringVector[6] = "five";
  133.     StringVector[7] = "six";
  134.     StringVector[8] = "eight";
  135.     StringVector[9] = "nine";
  136.     cout << "StringVector:" << endl;
  137.     print(StringVector);
  138.     cout << endl;
  139.     cout << "Sorted StringVector:" << endl;
  140.     sort(StringVector);
  141.     print(StringVector);
  142.     cout << endl;
  143.  
  144.     SimpleVector<int> IntVector2{ 3,5,2,7,9,1,4 };
  145.     sort(IntVector2);
  146.     print(IntVector2);
  147.  
  148.     SimpleVector<char> CharVector{ 'a','v','b','w','c'};
  149.     sort(CharVector);
  150.     print(CharVector);
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement