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 committed by zhupengfei
parent 290bfa1804
commit 5b691d3fe0

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) {
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 {