print unordered_map <std :: string,std :: list <std :: string =“”> </std :: string,>

时间:2013-02-18 10:34:16

标签: boost unordered-map

我有unordered_map。在std :: list中有客户端及其关联用户。 我可以打印我的客户端,但不知道如何打印其用户列表。

mapType clientUserMap;

clientUserMap.insert (mapType::value_type("C1", std::list<std::string> (userlist)));

boost::unordered_map<std::string, std::list<std::string> >
         ::const_iterator it = clientUserMap.find("C1");

 std::cout << it->first << std::endl;

3 个答案:

答案 0 :(得分:2)

这是一个列表,因此遍历列表并打印..例如

for(std::list<std::string>::const_iterator l_it = begin(it->second); l_it != end(it->second); ++l_it)
  std::cout << *l_it << std::endl;

当然还有很多花哨的方式......

答案 1 :(得分:0)

您所要做的就是遍历列表:

std::list<string> const &users = it->second;
std::for_each(users.begin(), users.end(), [](string const& user){std::cout << user << std::endl;}

答案 2 :(得分:0)

因为你已经使用了boost,你也可以使用BOOST_FOREACH迭代用户列表。 代码将如下所示:

#include <boost/foreach.hpp>
...

boost::unordered_map<std::string, std::list<std::string> >
  ::const_iterator it = clientUserMap.find("C1");

std::cout << it->first << std::endl;

BOOST_FOREACH( std::string user, it->second )
{
   std::cout << user << endl;
}