Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <algorithm>
- #define _CRT_SECURE_NO_DEPRECATE
- using namespace std;
- class MyVector
- {
- private:
- size_t size;
- size_t capacity;
- int* data;
- public:
- MyVector()
- {
- size = capacity = 0;
- data = nullptr;
- }
- MyVector(size_t _size, int value = 0)
- {
- size = _size;
- capacity = size + size / 2;
- data = new int[capacity];
- fill(data, data + capacity, 0);
- }
- MyVector(int arr[], size_t _size) // Добавление массива в качестве аргумента в конструктор
- {
- capacity = _size;
- size = capacity - capacity/2;
- data = arr;
- }
- MyVector(int fst, int last, int step)
- {
- if (fst < last)
- {
- size = last/step;
- capacity = size + size / 2; // - Конструктор, который принимает в качестве
- data = new int[capacity]; // параметра три числа, два из которых задают ,
- fst = fst - step; // диапазон чисел, который будет использоваться в качестве элементов массива
- for (size_t i = 0; i < size; i++)
- {
- data[i] =fst= fst+step;
- }
- }
- else if (fst>last)
- {
- size = fst / step;
- capacity = size + size / 2;
- data = new int[capacity];
- fst = fst + step;
- for (size_t i = 0; i < size; i++)
- {
- data[i] = fst=fst-step;
- }
- }
- }
- /*MyVector(const MyVector& other)
- {
- this->size = other.size;
- this->capacity = other.capacity;
- this->data = new int[capacity];
- copy(other.data, other.data + other.capacity, this->data);
- }*/
- int getSize()
- {
- return size;//возвращает размер массива вектора
- }
- int getCapacity()
- {
- return capacity; //возвращает размер буфер
- }
- void reserve(size_t _capacity)
- {
- if (_capacity<size) //увеличение буфера
- {
- cout << "Hay man I can't do it!" << endl;
- }
- else if (capacity>size)
- {
- capacity = _capacity;
- }
- }
- void clear()
- {
- data = nullptr;\\ Очищает вектор
- size = 0;
- }
- void print()
- {
- for (size_t i = 0; i < size; i++)
- {
- cout << setw(4) << data[i];
- }
- cout << endl;
- }
- void push_back(int value)
- {
- if (size < capacity)
- {
- data[size] = value;
- size++;
- }
- }
- ~MyVector()
- {
- delete[] data;
- //cout << "d'tor" << endl;
- }
- };
- int main()
- {
- int arr[5]{ 1,2 };
- MyVector v1(1,6,2);
- v1.print();
- v1.push_back(-1);
- v1.print();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement