我了解到多重映射是<key,value>
允许重复键的对(与映射不同)。帮助我首先按键(自动发生)然后按值(即名称)对多图进行排序。
int main()
{
multimap<int,string>info; // <key,value>
char name[10000];
int age;
//Input till EOF
while (std::cin >> name >> age){
info.insert( pair<int,string>(age,name) );
}
//sorted output according to key i.e age
map<int,string> :: iterator i;
for(i=info.begin(); i !=info.end(); i++)
cout<<(*i).second<<endl;
}
输入:
公爵夫人 26
玛丽 8
柏辽兹 8
图卢兹 7
托马斯 28
输出:
图卢兹 7
柏辽兹 8
玛丽 8
公爵夫人 26
托马斯 28
这里年龄(整数)是键,所以它首先按年龄排序,但如果两个或更多年龄与 BERLIOZ 和 MARIE 中的相同,则希望在 MARIE 之前打印 BERLIOZ,因为B 在字母顺序上优于 M。