将int和字符串值映射到Map <integer,list <string =“”>&gt; </integer,>

时间:2013-09-03 19:03:58

标签: c++ string sockets map

在我的程序中,我得到了这样的结果:

2:one
3:ff
3:rr
6:fg

我想在socket中使用send()方法发送这些数据,这样我就可以在接收套接字中获取单词出现和单词。

我认为Map<Integer, List<String>>会更好。

我的代码段:

   for (std::map < int, std::vector < std::string > >::iterator hit = three_highest.begin(); hit != three_highest.end(); ++hit) {
        //std::cout << hit->first << ":";

        for (std::vector < std::string >::iterator vit = (*hit).second.begin(); vit != (*hit).second.end(); vit++) {
            std::cout << hit->first << ":";
            std::cout << *vit << "\n";
}
}

hit->first给出[int val],*vit给出字符串。

如何将其存储到Map<Integer, List<String>>中以进行迭代?

1 个答案:

答案 0 :(得分:2)

您只需构建列表并将其插入到地图中。

std::map<int, std::list<std::string> > map_to_string_list;

for (auto list_it = three_highest.begin(); list_it != three_highest.end(); ++list_it) {
    map_to_string_list[list_it->first] = std::list<std::string>(list_it->second.begin(),
                                                                list_it->second.end());
}