lower_bound和upper_bound

来源:互联网 发布:淘宝商家版登录 编辑:程序博客网 时间:2024/05/24 00:10

头文件 #include < algorithm >

lower_bound :返回一个非递减序列[first, last)中的第一个大于等于值val的位置.
upper_bound:返回一个非递减序列[first, last)中第一个大于val的位置.
这里写图片描述

#include <stdio.h>//#include <bits/stdc++.h>#include < algorithm >using namespace std;const int N=...int a[N];int main(){    ...    //size是非递减序列a[]的大小    int tmp1=lower_bound(a,a+size,val)-a;//返回a[]中第一个大于等于val的位置    int tmp2=upper_bound(a,a+size,val)-a;//返回a[]中第一个大于val的位置    ...}

map也可以用
比如:

map<int,int> mp;map<int,int>::iterator it1,it2;int key;it1=mp.lower_bound(key);//返回map中第一个大于或等于key的迭代器指针it2=mp.upper_bound(key);//返回map中第一个大于key的迭代器指针//如果没找到的话返回mp.end()