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).
This commit is contained in:
Lioncash 2018-07-20 17:12:24 -04:00
parent 474ec2ee5f
commit 6279c2dcf4

View File

@ -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) { 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) { 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) { 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 { bool ParamPackage::Has(const std::string& key) const {