35657

Untitled

Jun 1st, 2024
547
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. #include <iostream>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. class Vector {
  7.  
  8. public:
  9.     Vector() {
  10.         arr_ = new int[4];
  11.         size_ = 0;
  12.         capacity_ = 4;
  13.     }
  14.  
  15.     Vector(const int capacity) {
  16.         arr_ = new int[capacity];
  17.         size_ = 0;
  18.         capacity_ = capacity;
  19.     }
  20.  
  21.     void push_back(const int value) {
  22.         check_capacity();
  23.         arr_[size_] = value;
  24.         size_++;
  25.     }
  26.  
  27.     void pop_back() {
  28.         if (size_ > 0) {
  29.             size_--;
  30.         }
  31.     }
  32.  
  33.     int size() {
  34.         return size_;
  35.     }
  36.  
  37.     int capacity() {
  38.         return capacity_;
  39.     }
  40.  
  41.     void print() {
  42.         for (int i = 0; i < size_; i++) {
  43.             cout << arr_[i] << " ";
  44.         }
  45.         cout << endl;
  46.     }
  47.  
  48. private:
  49.  
  50.     void check_capacity() {
  51.         if (size_ == capacity_) {
  52.             int* temp = new int[capacity_ * 2];
  53.             for (int i = 0; i < size_; i++) {
  54.                 temp[i] = arr_[i];
  55.             }
  56.             delete[] arr_;
  57.             arr_ = temp;
  58.             capacity_ *= 2;
  59.         }
  60.     }
  61.  
  62.     int size_; // текущее количество элементов
  63.     int capacity_; // емкость хранилища
  64.     int* arr_; // хранилище
  65. };
  66.  
  67. int main() {
  68.     setlocale(LC_ALL, "ru");
  69.  
  70.     Vector vec1;
  71.  
  72.     vec1.push_back(10);
  73.     vec1.push_back(15);
  74.     vec1.push_back(20);
  75.     vec1.push_back(25);
  76.     vec1.push_back(22);
  77.  
  78.     vec1.print();
  79.  
  80.     vec1.pop_back();
  81.     vec1.print();
  82.  
  83.     cout << vec1.size() << endl;
  84.     cout << vec1.capacity() << endl;
  85. }
  86.  
Advertisement
Add Comment
Please, Sign In to add comment