lower_bound在vector中用法:
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector <int >v;
// vector <int >v(5);创建5个为0的容器; (5,1)创建5个为1的容器
for(int i=1;i<=5;i++)
v.push_back(i);
int pos=lower_bound(v.begin(),v.end(),2)-v.begin();
cout<<pos<<endl;
return 0;
}
lower_bound在set中用法:二分查找一个有序数列,返回第一个大于等于x的数,如果没找到,返回末尾的迭代器位置
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+100;
typedef long long ll;
int N;
//lowwe_bound:返回第一个>=x的迭代器
//set从小到大排序
set<int>se;
int main()
{
//如果set存在比某个数大的数, 输出的是set中的数
//如果不存在,直接返回迭代器.end()
se.insert(2);
se.insert(4);
se.insert(10);
set<int>::iterator it;
it=se.lower_bound(9);
cout<<*it<<endl;
it=se.end();
cout<<*it<<endl;
/*
set中{2 4 10}
输出:
10 3
*/
return 0;
}