第一次感觉vector有很多的用法,我们可以在vector里面进行删除和修改操作,复杂度都是log(n)还有就是lower_bound()和upper_bound()
加上这些的东西,感觉stl解决的问题就是更多了。
lower_bound(): 在first和last的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置
upper_bound(); 返回一个迭代器指向其中最后一个这个元素的下一个位置(明确点说就是返回在不破坏顺序的情况下,可插入value的最后一个位置)
然后用法就是:
location=low_bound(s.begin(),s.end(),value);
就是删除操作: vec.erase(vec.begin()+2);删除第3个元素
插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
区间删除: vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始
然后我们再解决昨天没有解决的问题。