multimap
template
class multimap {
….
typedef pair value_type;
…….
}; //Key 代表关键字的类型
- multimap中的元素由 组成,每个元素是一个pair对象,关键字
就是first成员变量,其类型是Key
- multimap 中允许多个元素的关键字相同。元素按照first成员变量从小到大排列,缺省情况下用 less 定义关键字的“小于”关系。
#include
#include
using namespace std;
int main()
{
typedef multimap mmid;
mmid pairs;
cout score;
MAP_STD::iterator p=mp.lower_bound(score);
//查找一个最大的位置it,是的[begin(),it)中所有元素的first都比value小。
if(p!=mp.begin())
{
--p;
score=p->first;
//比要查询分数低的最高分
MAP_STD::iterator maxp=p;
int maxId=p->second.id;
for(; p!=mp.begin()&&p->first==score; --p)
{
//遍历所有成绩和score相等的学生
if(p->second.id>maxId)
{
maxp=p;
maxId=p->second.id;
}
}
if(p->first==score)
{
//如果上面循环是因为p==mp.begin()
//而终止,则p指向的元素还要处理
if(p->second.id>maxId)
{
maxp=p;
maxId=p->second.id;
}
}