从地图中访问几个参数

时间:2013-04-24 14:59:08

标签: c++ stdmap const-iterator

我已经定义了一张地图,

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

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

myentries[key] = value; 

现在我必须从地图中检索7个参数,例如hostNameportuser1user2user3

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

std::map<std::string, std::string>::iterator iterparam1 = entries_.find("hostName");

并访问iterparam1->second.data()iterparam2->second.data() ..

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

感谢您的时间:)

1 个答案:

答案 0 :(得分:0)

我认为您的方法的错误在于您决定保存主机参数的方式。更好地存储Host(自定义结构)类型的结构而不是一组键值对。否则,在代码中的某个时刻,您将不得不以某种方式将键名映射到结构中的实际字段,这将使代码难以维护并且不那么安全。不要试图在课堂上工作。