Advertisement
d_usukhbaatar

Untitled

Oct 15th, 2024
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.11 KB | Source Code | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template<typename type>
  5. struct vector {
  6.     int sz;
  7.     int cap;
  8.     type *dt;
  9.  
  10.     vector() {
  11.         sz = 0;
  12.         cap = 0;
  13.         dt = nullptr;
  14.     }
  15.  
  16.     void _extend() {
  17.         if (cap == 0) {
  18.             dt = new int[1];
  19.             cap = 1;
  20.             return;
  21.         } else {
  22.             type *temp = new int[cap * 2];
  23.             for (int i = 0; i < sz; i++) {
  24.                 temp[i] = dt[i];
  25.             }
  26.             type *old = dt;
  27.             dt = temp;
  28.             delete [] old;
  29.             cap = cap * 2;
  30.         }
  31.     }
  32.  
  33.     void push_back(type x) {
  34.         if (cap == sz) {
  35.             _extend();
  36.         }
  37.         dt[sz] = x;
  38.         sz++;
  39.     }
  40.  
  41.     int size() {
  42.         return sz;
  43.     }
  44.     int capacity() {
  45.         return cap;
  46.     }
  47.     void pop_back() {
  48.         sz--;
  49.     }
  50.     bool empty() {
  51.         if (sz == 0) return true;
  52.         else return false;
  53.     }
  54.  
  55.     type& operator[](int i) {
  56.         return dt[i];
  57.     }
  58.  
  59.     type back() {
  60.         return dt[sz- 1];
  61.     }
  62. };
  63.  
  64. int main() {
  65.     vector<int> v;
  66.     for (int i = 0; i < 10; i++) {
  67.         v.push_back((i + 1) * 10);
  68.     }
  69.     cout << v.size() << endl;
  70.     for (int i = 0; i < 10; i++) {
  71.         cout << v[i] << ' ';
  72.     }
  73.     cout << endl;
  74.  
  75.     while (!v.empty()) {
  76.         cout << v.back() << ' ';
  77.         v.pop_back();
  78.     }
  79.     cout << endl;
  80.     return 0;
  81. }
Tags: vector
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement