From a8f0bb4454b195b5d6625c1f9c936b94103a95b4 Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Sat, 1 Mar 2025 19:29:34 +0400 Subject: [PATCH] feat(kcp): Vector class outline --- kernel/src/CppLib/Vector.cpp | 7 +++++ kernel/src/CppLib/Vector.hpp | 57 ++++++++++++++++++++++++++++++++++++ kernel/src/main.cpp | 1 + 3 files changed, 65 insertions(+) create mode 100644 kernel/src/CppLib/Vector.cpp create mode 100644 kernel/src/CppLib/Vector.hpp diff --git a/kernel/src/CppLib/Vector.cpp b/kernel/src/CppLib/Vector.cpp new file mode 100644 index 0000000..8c22166 --- /dev/null +++ b/kernel/src/CppLib/Vector.cpp @@ -0,0 +1,7 @@ +/* + * vector.cpp + * Kernel C++ platform: Vector library + * Copyright (c) 2025 Daniel Hammer +*/ + +#include "Vector.hpp" \ No newline at end of file diff --git a/kernel/src/CppLib/Vector.hpp b/kernel/src/CppLib/Vector.hpp new file mode 100644 index 0000000..cfd438b --- /dev/null +++ b/kernel/src/CppLib/Vector.hpp @@ -0,0 +1,57 @@ +/* + * vector.hpp + * Kernel C++ platform: Vector library + * Copyright (c) 2025 Daniel Hammer +*/ + +#pragma once +#include +#include +#include + +namespace kcp +{ + template + class vector { + protected: + T* array; + std::size_t sz; + + public: + vector() + { + sz = 0; + array = nullptr; + } + + T operator[](std::int64_t position) + { + if (position > (sz + 1)) { + kerr << "Vector out of bounds caught!" << Kt::newline; + return T{}; + } + else + { + return array[position]; + } + } + + T at(std::int64_t position) { + return this->operator[](position); + } + + void push_back(T value) { + array = (T *)Memory::g_allocator->Realloc(array, sz + 1); + array[sz++] = value; + } + + void test() { + array = (T *)Memory::g_allocator->Realloc(array, sz + 1); + } + + T& get_array() + { + return *array; + } + }; +}; \ No newline at end of file diff --git a/kernel/src/main.cpp b/kernel/src/main.cpp index ce9d521..93eacd4 100644 --- a/kernel/src/main.cpp +++ b/kernel/src/main.cpp @@ -17,6 +17,7 @@ #include #include +#include using namespace Kt;