From 45fdfaa8ea5c29509af83810de83a0e9cd2c2f21 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Mon, 28 Apr 2025 20:28:09 -0400 Subject: [PATCH] Config should use unordered_map Safe change, doubles the speed of lookups --- include/Configuration.h | 7 ++++--- src/Configuration.cpp | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/Configuration.h b/include/Configuration.h index c33b5df3..bb8584a3 100644 --- a/include/Configuration.h +++ b/include/Configuration.h @@ -4,6 +4,7 @@ #include "Exceptions.h" #include "CoolPropTools.h" #include +#include #if !defined(SWIG) // Hide this for swig - Swig gets confused # include "rapidjson_include.h" @@ -275,7 +276,7 @@ class ConfigurationItem class Configuration { protected: - std::map items; + std::unordered_map items; public: Configuration() { @@ -286,7 +287,7 @@ class Configuration /// Get an item from the configuration ConfigurationItem& get_item(configuration_keys key) { // Try to find it - std::map::iterator it = items.find(key); + std::unordered_map::iterator it = items.find(key); // If equal to end, not found if (it != items.end()) { // Found, return it @@ -302,7 +303,7 @@ class Configuration }; /// Return a reference to all of the items - std::map& get_items(void) { + std::unordered_map& get_items(void) { return items; }; diff --git a/src/Configuration.cpp b/src/Configuration.cpp index 952888c6..1b28d3e7 100644 --- a/src/Configuration.cpp +++ b/src/Configuration.cpp @@ -97,8 +97,8 @@ std::string get_config_string(configuration_keys key) { } void get_config_as_json(rapidjson::Document& doc) { // Get the items - std::map items = config.get_items(); - for (std::map::const_iterator it = items.begin(); it != items.end(); ++it) { + std::unordered_map items = config.get_items(); + for (std::unordered_map::const_iterator it = items.begin(); it != items.end(); ++it) { it->second.add_to_json(doc, doc); } }