From 6b4a4441baed4c69994c3498f2e83d3c3855ef93 Mon Sep 17 00:00:00 2001 From: nemeth_mihaly Date: Fri, 16 Dec 2022 02:16:20 +0100 Subject: [PATCH] added Vector container --- .gitignore | 1 + Build.bat | 4 +- Run.bat | 4 +- Source/Main.cpp | 5 - src/Core/Containers/Vector.hpp | 197 +++++++++++++++++++++++ {Source => src}/Core/ScalarDataTypes.hpp | 0 src/Main.cpp | 41 +++++ target/Kraken-Core.exe | Bin 0 -> 127668 bytes 8 files changed, 243 insertions(+), 9 deletions(-) create mode 100644 .gitignore delete mode 100644 Source/Main.cpp create mode 100644 src/Core/Containers/Vector.hpp rename {Source => src}/Core/ScalarDataTypes.hpp (100%) create mode 100644 src/Main.cpp create mode 100644 target/Kraken-Core.exe diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9245fb3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +target\ \ No newline at end of file diff --git a/Build.bat b/Build.bat index 00dba8c..0359a35 100644 --- a/Build.bat +++ b/Build.bat @@ -1,9 +1,9 @@ @ECHO OFF SETLOCAL EnableDelayedExpansion -SET target_name=Test.exe +SET target_name=Kraken-Core.exe -SET target_dir=Target\ +SET target_dir=target\ SET compiler=g++ SET compiler_flags=-ggdb -Wall -Wextra diff --git a/Run.bat b/Run.bat index 6a375a1..783bbf8 100644 --- a/Run.bat +++ b/Run.bat @@ -1,9 +1,9 @@ @ECHO OFF SETLOCAL EnableDelayedExpansion -SET target_name=Test.exe +SET target_name=Kraken-Core.exe -SET target_dir=Target\ +SET target_dir=target\ CALL Build.bat diff --git a/Source/Main.cpp b/Source/Main.cpp deleted file mode 100644 index 91f38f2..0000000 --- a/Source/Main.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include - -i32 main() { - -} \ No newline at end of file diff --git a/src/Core/Containers/Vector.hpp b/src/Core/Containers/Vector.hpp new file mode 100644 index 0000000..664d6ff --- /dev/null +++ b/src/Core/Containers/Vector.hpp @@ -0,0 +1,197 @@ +#pragma once + +#include + +class OutOfRange {}; + +// @todo: implementing copy ctor & copy assignment +template +class Vector { + public: + Vector(); + ~Vector(); + +/** + * Element access + */ + Type& operator[] (i32 index); + const Type& operator[] (i32 index) const; + + Type* data() { return M_data; } + const Type* data() const { return M_data; } + +/** + * Capacity + */ + bool is_empty() const { return (M_length == 0); } + i32 length() const { return M_length; } + + void reserve(i32 new_capacity); + + i32 capacity() const { return M_capacity; } + +/** + * Modifiers + */ + void clear(); + + void insert(const Type& value, i32 index); + void erase(i32 index); + + void push(const Type& value); + void pop(); + + void resize(i32 new_capacity); + + private: + Type* M_data; + i32 M_capacity; + i32 M_length; +}; + + +template +inline Vector::Vector() { + i32 initial_capacity = 8; + + M_data = new Type[initial_capacity]; + M_capacity = initial_capacity; + M_length = 0; +} + + +template +inline Vector::~Vector() { + delete[] M_data; + + M_data = nullptr; + M_capacity = 0; + M_length = 0; +} + + +template +inline Type& Vector::operator[] (i32 index) { + if(index < 0 || index > M_length) { + throw OutOfRange(); + } + + return M_data[index]; +} + + +template +inline const Type& Vector::operator[] (i32 index) const { + if(index < 0 || index > M_length) { + throw OutOfRange(); + } + + return M_data[index]; +} + + +template +inline void Vector::reserve(i32 new_capacity) { + if(new_capacity < M_capacity) { + return; + } + + M_capacity = new_capacity; + + Type* new_data = new Type[new_capacity]; + + for(i32 i = 0; i < M_length; i += 1) { + new_data[i] = M_data[i]; + } + + delete[] M_data; + + M_data = new_data; +} + + +template +inline void Vector::clear() { + delete[] M_data; + + i32 initial_capacity = 8; + + M_data = new Type[initial_capacity]; + M_capacity = initial_capacity; + M_length = 0; +} + + +template +inline void Vector::insert(const Type& value, i32 index) { + if(index < 0 || index > M_length) { + return; + } + + if(M_length + 1 > M_capacity) { + resize(M_capacity *= 2); + } + + for(i32 i = M_length; i > index; i -= 1) { + M_data[i] = M_data[i - 1]; + } + + M_length += 1; + + M_data[index] = value; +} + + +template +inline void Vector::erase(i32 index) { + if(index < 0 || index > M_length) { + return; + } + + M_length -= 1; + + for(i32 i = index; i < M_length; i += 1) { + M_data[i] = M_data[i + 1]; + } +} + + +template +inline void Vector::push(const Type& value) { + if(M_length + 1 > M_capacity) { + resize(M_capacity *= 2); + } + + M_data[M_length] = value; + M_length += 1; +} + + +template +inline void Vector::resize(i32 new_capacity) { + if(new_capacity < 0) { + return; + } + + M_capacity = new_capacity; + + Type* new_data = new Type[new_capacity]; + + if(new_capacity < M_length) { + M_length = new_capacity; + } + + for(i32 i = 0; i < M_length; i += 1) { + new_data[i] = M_data[i]; + } + + delete[] M_data; + + M_data = new_data; +} + + +template +inline void Vector::pop() { + --M_length; +} diff --git a/Source/Core/ScalarDataTypes.hpp b/src/Core/ScalarDataTypes.hpp similarity index 100% rename from Source/Core/ScalarDataTypes.hpp rename to src/Core/ScalarDataTypes.hpp diff --git a/src/Main.cpp b/src/Main.cpp new file mode 100644 index 0000000..44cff64 --- /dev/null +++ b/src/Main.cpp @@ -0,0 +1,41 @@ +#include + +#include +using namespace std::chrono; + +#define KRAKEN_DEBUG 1 + +#include +#include + +class Timer { + public: + void start() { + M_start_time = high_resolution_clock::now();; + } + + void stop() { + M_stop_time = high_resolution_clock::now(); + } + + std::chrono::nanoseconds duration() { + auto d = duration_cast(M_stop_time - M_start_time); + return d; + } + + private: + std::chrono::_V2::system_clock::time_point M_start_time, M_stop_time; +}; + +void print_vector(const Vector& v) { + for(i32 i = 0; i < v.length(); i += 1) { + std::cout << v[i] << ' '; + } + std::cout << std::endl; +} + +i32 main() { + { + Vector v; + } +} \ No newline at end of file diff --git a/target/Kraken-Core.exe b/target/Kraken-Core.exe new file mode 100644 index 0000000000000000000000000000000000000000..0441bfc1be496e84e8d905c5c3e098bf140d640f GIT binary patch literal 127668 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 literal 0 HcmV?d00001