Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- template<typename type>
- struct vector {
- int sz;
- int cap;
- type *dt;
- vector() {
- sz = 0;
- cap = 0;
- dt = nullptr;
- }
- void _extend() {
- if (cap == 0) {
- dt = new int[1];
- cap = 1;
- return;
- } else {
- type *temp = new int[cap * 2];
- for (int i = 0; i < sz; i++) {
- temp[i] = dt[i];
- }
- type *old = dt;
- dt = temp;
- delete [] old;
- cap = cap * 2;
- }
- }
- void push_back(type x) {
- if (cap == sz) {
- _extend();
- }
- dt[sz] = x;
- sz++;
- }
- int size() {
- return sz;
- }
- int capacity() {
- return cap;
- }
- void pop_back() {
- sz--;
- }
- bool empty() {
- if (sz == 0) return true;
- else return false;
- }
- type& operator[](int i) {
- return dt[i];
- }
- type back() {
- return dt[sz- 1];
- }
- };
- int main() {
- vector<int> v;
- for (int i = 0; i < 10; i++) {
- v.push_back((i + 1) * 10);
- }
- cout << v.size() << endl;
- for (int i = 0; i < 10; i++) {
- cout << v[i] << ' ';
- }
- cout << endl;
- while (!v.empty()) {
- cout << v.back() << ' ';
- v.pop_back();
- }
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement