From d4cac8e92a69f02e9e792b61ab05f8f144075bc8 Mon Sep 17 00:00:00 2001 From: Abdollahi Date: Mon, 17 Jun 2024 13:09:41 +0000 Subject: [PATCH] Upload files to "/" --- Vector.cpp | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Vector.cpp diff --git a/Vector.cpp b/Vector.cpp new file mode 100644 index 0000000..d0f38cf --- /dev/null +++ b/Vector.cpp @@ -0,0 +1,87 @@ +#include +#include + +class Vector { +private: + int* data; + size_t size; + size_t count; + + +public: + Vector(); + ~Vector(); + + void resize(size_t new_size); + + int& operator[](size_t index); + size_t get_count() const; + void push_back(int value); +}; + +// Constructor +Vector::Vector() : data(nullptr), size(0), count(0) {} + +// Destructor +Vector::~Vector() { + delete[] data; +} + +// Overloaded operator[] +int& Vector::operator[](size_t index) { + if (index >= count) { + std::cout << "index out of range"; + } + return data[index]; +} + +// get_count() function +size_t Vector::get_count() const { + return count; +} + +// resize() function +void Vector::resize(size_t new_size) { + if (new_size > size) { + int* new_data = new int[new_size]; + for (size_t i = 0; i < count; ++i) { + new_data[i] = data[i]; + } + delete[] data; + data = new_data; + size = new_size; + } + count = new_size; +} + +// push_back() function +void Vector::push_back(int value) { + if (count == size) { + size_t new_size = size++; + resize(new_size); + } + data[count++] = value; +} + +int main() { + Vector vec; + + vec.push_back(1); + vec.push_back(2); + vec.push_back(3); + + std::cout << "Vector count: " << vec.get_count() << std::endl; + + for (size_t i = 0; i < vec.get_count(); ++i) { + std::cout << "vec[" << i << "] = " << vec[i] << std::endl; + } + + vec.resize(5); + std::cout << "Vector count after resize: " << vec.get_count() << std::endl; + + for (size_t i = 0; i < vec.get_count(); ++i) { + std::cout << "vec[" << i << "] = " << vec[i] << std::endl; + } + + return 0; +}