C++标准库---已序区间算法之一binary_search()&includes()
来源:互联网 发布:小站雅思mac 编辑:程序博客网 时间:2024/05/12 05:24
在已序区间中搜寻某元素
检查某个元素是否存在
bool binary_search(beg,end,const T& value)
bool binary_search(beg,end,const T& value,op)
(1)两种形式都用来判断已序区间[beg,end)中是否包含“和value等值”的元素;
检查某个元素是否存在
bool binary_search(beg,end,const T& value)
bool binary_search(beg,end,const T& value,op)
(1)两种形式都用来判断已序区间[beg,end)中是否包含“和value等值”的元素;
(2)op是一个可有可无的二元判断式,用来作为排序准则:
op(elem1,elem2)(3)如果想要获得被搜寻元素的位置,应使用lower_bound(),upper_bound()或equal_range();
(4)调用者必须确保进入算法之际,该区间已序(在指定的排序准则作用下);(5)复杂度:如果搭配随机存取迭代器,则为对数复杂度,否则为线性复杂度;
代码示例:
#include"fuzhu.h"using namespace std;int main(){list<int> coll;INSERT_ELEMENTS(coll,1,9);PRINT_ELEMENTS(coll,"coll: ");if(binary_search(coll.begin(),coll.end(),5)){cout<<"5 is present"<<endl;}else{cout<<"5 is not presnet"<<endl;}if(binary_search(coll.begin(),coll.end(),42)){cout<<"42 is present"<<endl;}else{cout<<"42 is not presnet"<<endl;}system("pause");return 0;}
检查若干个值是否存在
bool includes(beg,end,searchBeg,searchEnd)
bool includes(beg,end,searchBeg,searchEnd,op)
(1)两种形式都用来判断已序序列[beg,end)是否包含另一个已序序列[searchBeg,searchEnd)的全部元素,也就是说对于[searchBeg,searchEnd)中的每一个元素,如果[beg,end)必有一个对应的相等元素,那么[searchBeg,searchEnd)肯定是[beg,end)的子集;
(2)op是一个可有可无的二元判断式,被用来作为排序准则:
op(elem1,elem2)
(3)调用者必须确保在进入算法之际,两区间都应该已经按照相同的排序准则排好序了;
(4)复杂度:线性;
代码示例:
#include"fuzhu.h"using namespace std;int main(){list<int> coll;vector<int> search;INSERT_ELEMENTS(coll,1,9);PRINT_ELEMENTS(coll,"coll: ");search.push_back(3);search.push_back(5);search.push_back(7);PRINT_ELEMENTS(search,"search: ");if(includes(coll.begin(),coll.end(),search.begin(),search.end())){cout<<"all elements of search are also in coll"<<endl;}else{cout<<"not all elements of search are also in coll"<<endl;}system("pause");return 0;}
0 0
- C++标准库---已序区间算法之一binary_search()&includes()
- STL_算法_查找算法(binary_search、includes)
- C++ STL 算法:查找算法(6) binary_search、includes
- C++标准库---已序区间算法之二lower_bound()&upper_bound()&equal_range()
- 已序区间算法
- 九、STL算法-有序区间算法(binary_search、lower_bound、merge)
- C++的STL的binary_search()和includes()
- c++之STL(13) STL 算法 - 查找算法(6)binary_search(b,e,v) binary_search(b,e,v,p) includes(b,e,sb,se) include
- binary_search(应用于有序区间)
- C++标准库---已序算法之三合并元素
- C标准库之一:assert.h
- heap算法,binary_search
- C:RMQ算法(求任意子区间内的最大值)(已通过测试)
- C++标准库---移除性算法之一remove()&remove_if()
- STL泛型算法--binary_search()
- 另一个简单的binary_search算法:
- STL algorithm算法binary_search(5)
- STL algorithm算法includes(23)
- dotNet测试之三-------UFT API测试
- poj 1328 Radar Installation
- Storm集群安装2
- 线程返回建议使用_endthreadex()
- iOS压缩图片大小
- C++标准库---已序区间算法之一binary_search()&includes()
- 二十岁出头的时候,也许你一无所有,但你拥有者一切。
- 《数据结构》第4章 字符串和多维数组 知识点总结导图
- matlab 图片序列 生成 avi视频
- CSS属性之表格(Table)
- 老得更厉害的是这一位
- 老得更厉害的是这一位
- jquery 基础
- 获取一个字符 除了大写转换成小写 其他原样输出