From 36a9b60e0ba78121e40fb5623b07432bbeee643f Mon Sep 17 00:00:00 2001 From: Patrick Wuttke Date: Wed, 18 Dec 2024 14:50:01 +0100 Subject: [PATCH] Added constant index operator to VectorMap. --- source/mijin/container/vector_map.hpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/mijin/container/vector_map.hpp b/source/mijin/container/vector_map.hpp index 3fa016e..9ed77b6 100644 --- a/source/mijin/container/vector_map.hpp +++ b/source/mijin/container/vector_map.hpp @@ -135,6 +135,11 @@ public: return emplace(key, TValue()).first->second; } + const TValue& operator[](const TKey& key) const + { + return at(key); + } + [[nodiscard]] iterator begin() MIJIN_NOEXCEPT { return {keys_.data(), values_.data()}; } [[nodiscard]] @@ -176,6 +181,11 @@ public: size_type size() const MIJIN_NOEXCEPT { return keys_.size(); } [[nodiscard]] size_type max_size() const MIJIN_NOEXCEPT { return std::min(keys_.max_size(), values_.max_size()); } + void reserve(std::size_t size) + { + keys_.reserve(size); + values_.reserve(size); + } void clear() { @@ -241,7 +251,7 @@ public: { if (keys_[idx] == key) { - return iterator(&keys_[idx], &values_[idx]); + return const_iterator(&keys_[idx], &values_[idx]); } } return end();