WEB开发网
开发学院操作系统Linux/Unix linux下练习 c++ 关联式容器multimap特性 阅读

linux下练习 c++ 关联式容器multimap特性

 2012-10-25 16:10:44 来源:WEB开发网   
核心提示:/*multimap特性key可以重复不支持下标访问*/#include<iostream>#include<string>#include "print.h"#include<map>using namespace std;typedef pair<int
/*
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:V
		ie=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;
}

Tags:linux 练习 关联

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接