/*
multimap特性
key可以重复
不支持下标访问
*/
#include<iostream>
#include<string>
#include "print.h"
#include<map>
using namespace std;
typedef pair<int,string> pairmp;
typedef multimap<string,double> MS;int main()
{MS m;m.insert(MS::value_type("t1",1000));m.insert(MS::value_type("t1",1300));m.insert(make_pair("t2",3000));m.insert(MS::value_type("t1",1800));m.insert(make_pair("t2",100000));m.insert(MS::value_type("t1",1600));print(m.begin(),m.end());MS::iterator ib=m.begin(),ie;MS m2;while(ib!=m.end()){string name=ib->first;//first:K,second:Vie=m.upper_bound(name);//同一个key的一个区别上界double sum=0.0;while(ib!=ie){sum+=(ib++)->second;}m2.insert(make_pair(name,sum));//处理,并加入一个容量}print(m2.begin(),m2.end());return 0;
}
运行: