首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

定义map容器,内容输入有关问题

2012-05-03 
定义map容器,内容输入问题定义一个map对象,其元素的键是家族姓氏,而值是家族成员名字(所有成员)为这个map

定义map容器,内容输入问题
定义一个map对象,其元素的键是家族姓氏,而值是家族成员名字(所有成员)
为这个map容器输入条目
对map<string, vector<string> >输入内容有哪些方法?
先输入姓氏,再对名字进行输入 或者 姓氏跟名字同时输入 都行得通吗?
求相应的代码

[解决办法]
....
父母双方的姓怎么可能一定相同,,还是我对家族姓氏理解错误??


输入的话
map<string vector<string> > table;
string surname,name;
while(cin>>surname>>name)
{
map<string vector<string> > it=table.find(surname);
if(table.end()==it)
{
map[surname]=vector<string>(1,name);
}
else
{
it->second.push_back(name);
}
}
[解决办法]
你用multimap吧,这样key(姓氏)是可以重复的,参考下面的代码:

C/C++ code
#include <map>#include <iostream>#include <string>using namespace std;int main(int argc, char** argv){    string fname;    // 姓    string gname;    // 名    multimap<string, string> family_map;    do    {        cin.clear();        cin.sync();        cin >> fname >> gname;        if(fname == "0" || gname == "0") break;  // 退出循环的条件        family_map.insert(pair<string, string>(fname, gname));    }while(1);        // 遍历family_map    multimap<string, string>::iterator iter;    for(iter = family_map.begin(); iter != family_map.end(); ++iter)    {        cout << iter->first << ", " << iter->second << endl;    }    return 0;} 

热点排行