Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using namespace std;
- class Vector {
- private:
- int * data;
- size_t vect_size;
- size_t capacity;
- public:
- Vector() {
- data = new int[0];
- vect_size = 0;
- capacity = 0;
- };
- Vector(const Vector& input) {
- vect_size = input.vect_size;
- capacity = input.capacity;
- data = new int[vect_size];
- for (size_t i = 0; i < vect_size; ++i) {
- data[i] = input.data[i];
- }
- }
- Vector& operator=(const Vector& input) {
- vect_size = input.vect_size;
- capacity = input.capacity;
- delete [] data;
- data = new int[vect_size];
- for (size_t i = 0; i < vect_size; ++i) {
- data[i] = input.data[i];
- }
- return *this;
- }
- ~Vector() {
- delete [] data;
- }
- size_t size() {
- return vect_size;
- }
- int operator[](size_t i) {
- return data[i];
- }
- void push_back(int elem) {
- if (vect_size == capacity) {
- int * tmp = new int[vect_size];
- if (vect_size) {
- for (size_t i = 0; i < vect_size; ++i) {
- tmp[i] = data[i];
- }
- delete [] data;
- }
- if (!capacity) {
- capacity = 1;
- }
- capacity *= 2;
- data = new int[capacity];
- for (size_t i = 0; i < vect_size; ++i) {
- data[i] = tmp[i];
- }
- if (vect_size) {
- delete [] tmp;
- }
- }
- data[vect_size] = elem;
- ++vect_size;
- }
- void pop_back() {
- --vect_size;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement