STL的一些基本操作
参考
二分查找
lower_bound(begin,end,x)
返回第一个大于等于x的位置
upper_bound(begin,end,x)
返回第一个大于x的位置
可以看到,upper_bound
和lower_bound
的差别就是一个等于
但是,如果一个数组是降序的呢???
lower_bound(begin,end,x,greater<int>())
返回第一个小于等于x的位置
upper_bound(begin,end,x,greater<int>())
返回第一个小于x的位置
int pos = lower_bound(v.begin(),v.end(),100)-v.begin();
int pos = lower_bound(v,v+n,100)-v; //数组
迭代器
vector<int> v;
auto
for(auto i : v)
iterator
vector<int>::iterator it = v.begin();
vector.insert()
把这个位置后面数移一位,然后把这个数插进去
v.insert(v.begin(),1); //1
v.insert(v.begin(),2); //2 1
v.insert(v.begin()+1,5); //2 5 1