summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/m_dynarray.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/m_dynarray.h b/include/m_dynarray.h
new file mode 100644
index 0000000..6cb4209
--- /dev/null
+++ b/include/m_dynarray.h
@@ -0,0 +1,32 @@
+template <typename TValue, int TMaxSize>
+class mDynArray_c {
+ int currentSize;
+ TValue buffer[TMaxSize];
+
+ public:
+ mDynArray_c() { currentSize = 0; }
+
+ int count() { return currentSize; }
+ int max() { return TMaxSize; }
+
+ TValue& get(int index) const { return buffer[index]; }
+ void set(int index, TValue &newValue) { buffer[index] = newValue; }
+
+ void append(TValue &newValue) {
+ set(currentSize, newValue);
+ currentSize += 1;
+ }
+
+ TValue &pop() {
+ currentSize -= 1;
+ return get(currentSize - 1);
+ }
+
+ TValue &first() const { return get(0); }
+ TValue &last() const { return get(currentSize - 1); }
+
+ bool empty() const { return (currentSize == 0); }
+ bool full() const { return (currentSize == TMaxSize); }
+};
+
+