stl的二分函数

来源:互联网 发布:怎么才能看到淘宝直播 编辑:程序博客网 时间:2024/06/05 17:36

1.stable_sort在数组里和sort函数是一样的,区别在于前者对于数值相等的两个变量并不会交换顺序,所以只有在结构体里才能看出区别

2.lower_bound函数返回数组中第一个大于等于某数的位置,而upper_bound返回数组中第一个大于某数的位置。所以两个函数相减经常用来求一个数组之内有多少个某元素

测试了一下代码:

#include<stdio.h>#include<iostream>#include<algorithm>#include<vector> using namespace std;int a[10]={1,2,3,3,3,4,5,6,66,9};int main(){int cnt3;printf("%d\n",upper_bound(a,a+10,3));printf("%d\n",lower_bound(a,a+10,3));cnt3=upper_bound(a,a+10,3)-lower_bound(a,a+10,3);printf("%d\n",cnt3);return 0;}
打印出upper_bound和lower_bound后是一个奇怪的数,后来才知道他打出来的是iterator(迭代器——在stl中的一个专属抽象概念名词,可以简单粗暴地理解成stl设计模式中的指针),cnt3计算的便是这里3的个数为3



0 0
原创粉丝点击