/*
map容器是根据键值进行排序的,stl库中的函数原型

iterator upper_bound(const key_type& k);
const_iterator upper_bound(const key_type& k) const;

iterator lower_bound(const key_type& k);
const_iterator lower_bound(const key_type& k) const;

*/
#include <iostream>
#include <string>
#include <map>
#include <stdio.h>

using namespace std;
int main()
{
map<int,string> maptmp;
map<int,string>::iterator pos,pos1;
maptmp[1]="a";
maptmp[2]="b";
maptmp[4]="c";
maptmp[3]="f";
maptmp[5]="d";

pos=maptmp.lower_bound(3);
printf("lower_bound %d=>%s\n",pos->first,pos->second.c_str());

pos1 = maptmp.upper_bound(3);
printf("upper_bound %d=>%s\n",pos1->first,pos1->second.c_str());
return 0;


//输出:lower_bound 3=>"f"和 upper_bound 4=>"c"

//一句话解释:
//lower_bound(k)寻找 k <= ? 并返回其迭代器
//upper_bound(k)寻找 k < ? 并返回其迭代器
//(其中 ?为那个最接近的key值)

}