我是一个初学者,想各位帮忙看下是什么问题
int main(){
typedef map <string, string > ::value_type valType;
typedef string xing;
typedef string ming;
map <xing, ming > familytree;
familytree.insert(valType( "Wang ", " "));
familytree.insert(valType( "Xue ", " "));
familytree.insert(valType( "Zhou ", " "));
familytree.insert(valType( "Liu ", " "));
familytree.insert(valType( "Li ", " "));
familytree.insert(valType( "Lin ", " "));
string name;
cin> > name;
map <string,string > ::iterator where;
where=familytree.find(name);
familytree[*where].push_back(name);
map <string,string> ::iterator iter;
for(iter=familytree.begin();
iter!=familytree.end();++iter)
cout < < "family name: " < <(*iter).first
< < "people: " < <(*iter).second;
}
[解决办法]
那么,你的路还很长呢
map <xing, ming > familytree;
必须改成map <string, vector <string> > familytree;
map <string,string > ::iterator where;
where=familytree.find(name);
familytree[*where].push_back(name);
改成familytree[xing].push_back(ming);