从映射中访问少量参数

access few parameters from a map

本文关键字:参数 访问 映射      更新时间:2023-10-16

我已经定义了一个映射,

static std::map<std::string, std::string> myentries;

项通过键和值字符串动态填充,元素的数量和顺序是动态的。

myentries[key] = value; 

现在我必须从映射中检索7个参数,这些参数的键对我来说是已知的,例如,hostName, port, user1, user2, user3

一种方法是访问所有5个参数,并有5个语句,如…

std::map<std::string, std::string>::iterator iterparam1 = entries_.find("hostName");
并访问iterparam1->second.data(), iterparam2->second.data() ..

这个简单的方法完成了它的工作,因为我知道地图的子集,但是我想讨论一下是否有任何替代方法的优点和缺点,当前的建议/替代方法。

谢谢你的时间:)

我认为您的方法是错误的,您决定保存主机参数的方式。最好存储Host类型的结构(自定义结构),而不是一组键值对。否则,在代码中的某些地方,您将不得不以某种方式将键名映射到结构中的实际字段,这将使代码难以维护且不太安全。