关联容器 Map和Multimap

内容纲要

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;
                    }
                }

发表评论

邮箱地址不会被公开。 必填项已用*标注