STL_算法_查找算法(adjacent_find)
来源:互联网 发布:天界法宝升阶数据 编辑:程序博客网 时间:2024/05/01 04:58
C++ Primer 学习中。。。
简单记录下我的学习过程 (代码为主)
adjacent_find //用来查找连续两个相等的或者符合方法的
#include<iostream>#include<cstdio>#include<string>#include <vector>#include<algorithm>using namespace std;/*****************************************//所有容器适用(线性的)adjacent_find(b,e);adjacent_find(b,e,p);用来查找连续两个相等的或者符合方法的如果是已序区间则选用已序区间查找算法binary_search()includes()lower_bound()upper_bound()*****************************************//*************************************************************************************std::adjacent_find() 所有容器适用 algorithm--------------------------------------------------------------------------------------template <class ForwardIterator> ForwardIterator adjacent_find ( ForwardIterator first, ForwardIterator last );template <class ForwardIterator, class BinaryPredicate> ForwardIterator adjacent_find ( ForwardIterator first, ForwardIterator last, BinaryPredicate pred );//eg:template <class ForwardIterator>ForwardIterator adjacent_find ( ForwardIterator first, ForwardIterator last ){ if (first != last) { ForwardIterator next=first; ++next; while (next != last) { if (*first == *next) // or: if (pred(*first,*next)), for the pred version return first; else{++first;++next;} } } return last;}*************************************************************************************/bool myfunction (int i, int j){ return (i==j*2);}int main(){ int myints[] = {10,20,30,30,40,20,10,20}; vector<int> myvector (myints,myints+8); vector<int>::iterator it; for(it=myvector.begin();it!=myvector.end();++it) cout<<*it<<" "; cout<<endl; // using default comparison: it = adjacent_find (myvector.begin(), myvector.end()); if (it!=myvector.end()) cout << "the first consecutive repeated elements are: " << *it << endl; //using predicate comparison: it = adjacent_find (myvector.begin(), myvector.end(), myfunction); if (it!=myvector.end()) cout << "the second consecutive repeated elements are: " << *it << endl; return 0;}/*****Output 10 20 30 30 40 20 10 20 the first consecutive repeated elements are: 30 the second consecutive repeated elements are: 40*/
0 0
- STL_算法_查找算法(adjacent_find)
- STL_算法_查找算法(search_n)
- STL_算法_查找算法(find_first_of、find_last_of)
- STL_算法_查找算法(binary_search、includes)
- STL_算法_查找算法(find、find_if)
- STL_算法_查找算法(search、find_end)
- STL_算法_查找算法(lower_bound、upper_bound、equal_range)
- STL_算法(22)_ STL_算法_替换算法
- STL_算法(21)_ STL_算法_填充新值
- STL_算法_交换(swap_ranges)
- STL_算法(23)_删除_(1)
- STL_算法_元素计数(count、count_if)
- STL_算法_复制元素(copy、copy_backward)
- STL_算法_删除(unique、unique_copy)
- STL_算法_逆转(reverse,reverse_copy)
- STL_算法_旋转(rotate、rotate_copy)
- STL_算法_排列(prev_permutation、next_permutation)
- STL_算法_局部排序(partial_sort、partial_sort_copy)
- Spring+Mybatis实现动态SQL查询
- ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结
- GridView布局(九宫格布局)
- java流与文件——流
- linux Centos6.5 安装 jdk1.6
- STL_算法_查找算法(adjacent_find)
- linux 下C调用Python 模块
- Windows7系统下更改安装包的兼容模式离线安装.Net FrameWork3.5
- Python文件配置configParser使用
- 一次使用Eclipse Memory Analyzer分析Tomcat内存溢出
- 如何通过Request获取用户真实IP
- Android实训案例(二)——Android下的CMD命令之关机重启以及重启recovery
- 待整理(平台)
- 多线程断点续传