map的用法

sunmoonfly 2008-07-16 02:50:20
我想实现一个一对多的map关系
也就是一个用户名对应多条信息
typedef std::list<std::string> StringList;
map<string,StringList>map_roster;
map<string,StringList>::iterator iter;

map_roster["mingfei"].push_back("1Message");
map_roster["mingfei"].push_back("Message");

map_roster["ydp"].push_back("1Message");
map_roster["ydp"].push_back("2Message");
map_roster["ydp"].push_back("3Message");

iter=map_roster.find("ydp");

如何进行遍历
...全文
160 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunmoonfly 2008-07-16
  • 打赏
  • 举报
回复
自己解决了


typedef std::list<std::string> StringList;
map<string,StringList>map_roster;
map<string,StringList>::iterator iter;

StringList slMing;

slMing.push_back("mingfei1ÌõÏûÏ¢");
slMing.push_back("mingfei2ÌõÏûÏ¢");
map_roster["mingfei"]=slMing;

slMing.erase(slMing.begin(),slMing.end());

slMing.push_back("1ÌõÏûÏ¢");
slMing.push_back("2ÌõÏûÏ¢");
slMing.push_back("3ÌõÏûÏ¢");

map_roster["ydp"]=slMing;

iter=map_roster.find("mingfei");
// for (;iter!=map_roster.end(); iter++)
// {
cout<<iter->first<<endl;
StringList::const_iterator g = (*iter).second.begin();
for (;g!=(*iter).second.end();g++)
{
cout<<(*g).c_str()<<endl;
}
rocker9527 2008-07-16
  • 打赏
  • 举报
回复
再用list的方法来遍历

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧