定义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;}