关联容器 Map和Multimap

/ 0评 / 0

multimap

template
class multimap {
….
typedef pair value_type;
…….
}; //Key 代表关键字的类型
#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;
                    }
                }

发表评论

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