当我尝试传递一个字符串对映射时,我觉得我的代码太多是硬编码的(字符串用作键),并且不是很优雅。 这就是为什么我想问一想共享地图时是否有最佳实践。
创作:
std::map<std::string, std::string> GetDataAsMap(){
std::map<std::string, std::string> data;
data["id"] = ReadProperty("id");
...
return data;
}
消费:
auto dataMap = GetDataAsMap();
int id = dataMap["id"];
问题:
std::map<std::string, std::string> GetDataAsMap(std::set<std::string>& keys){
std::map<std::string, std::string> data;
data["id"] = ReadProperty("id");
keys.insert("id");
...
return data;
}
在这里,我可以遍历键,以防万一我只需要向用户显示数据,但除此之外不会赢很多钱
std::map<std::string, std::string> GetDataAsMap(){
std::map<std::string, std::string> data;
data[Keys::ID] = ReadProperty("id");
...
return data;
}
有没有比我在这里尝试过的更好的最佳实践或方法?