Просмотр исходного кода

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).
Lioncash 8 лет назад
Родитель
Сommit
6279c2dcf4
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      src/common/param_package.cpp

+ 3 - 3
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 {