STL的一些基本操作

参考

http://c.biancheng.net/stl/

二分查找

lower_bound(begin,end,x) 返回第一个大于等于x的位置
upper_bound(begin,end,x) 返回第一个大于x的位置
可以看到,upper_boundlower_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
posted @ 2019-12-21 09:55  hezongdnf  阅读(156)  评论(0编辑  收藏  举报