From 5b691d3fe08083a7660b8fa2a23a7852b68052d8 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 20 Jul 2018 17:12:24 -0400 Subject: [PATCH] param_package: Use std::unordered_map's insert_or_assign instead of map indexing This avoids a redundant std::string construction if a key doesn't exist in the map already. e.g. data[key] requires constructing a new default instance of the value in the map (but this is wasteful, since we're already setting something into the map over top of it). --- src/common/param_package.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/param_package.cpp b/src/common/param_package.cpp index cc276ff79a..3ed97428e9 100644 --- a/src/common/param_package.cpp +++ b/src/common/param_package.cpp @@ -103,15 +103,15 @@ float ParamPackage::Get(const std::string& key, float default_value) const { } void ParamPackage::Set(const std::string& key, const std::string& value) { - data[key] = value; + data.insert_or_assign(key, value); } void ParamPackage::Set(const std::string& key, int value) { - data[key] = std::to_string(value); + data.insert_or_assign(key, std::to_string(value)); } void ParamPackage::Set(const std::string& key, float value) { - data[key] = std::to_string(value); + data.insert_or_assign(key, std::to_string(value)); } bool ParamPackage::Has(const std::string& key) const {