我有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;
答案 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;
}