cb32a_c++_STL_算法_查找算法_(5)adjacent_find
cb32a_c++_STL_算法_查找算法_(5)adjacent_find
adjacent_find(b,e),b,begin(),e,end()
adjacent_find(b,e,p),p-parameter(谓词),函数,条件,规则.连续的两个符合条件的数据
adjacent_find() 算法可以用来搜索序列中两个连续相等的元素。
用 == 运算符来比较连续的一对元素,返回的迭代器指向前两个相等元素中的第一个。
如果没有一对相等的元素,这个算法返回这个序列的结束迭代器。
http://c.biancheng.net/view/576.html
如果是已序区间,可以使用已序区间的查找算法(效率高),比如:set和multiset_关联容器自动排序
binary_search()
includes()
lower_bound()
upper_bound()
*/
/*cb32a_c++_STL_算法_查找算法_(5)adjacent_find
adjacent_find(b,e),b,begin(),e,end()
adjacent_find(b,e,p),p-parameter(谓词),函数,条件,规则.连续的两个符合条件的数据
adjacent_find() 算法可以用来搜索序列中两个连续相等的元素。
用 == 运算符来比较连续的一对元素,返回的迭代器指向前两个相等元素中的第一个。
如果没有一对相等的元素,这个算法返回这个序列的结束迭代器。 http://c.biancheng.net/view/576.html 如果是已序区间,可以使用已序区间的查找算法(效率高),比如:set和multiset_关联容器自动排序
binary_search()
includes()
lower_bound()
upper_bound() */
#include <iostream>
#include <algorithm>
#include <vector> using namespace std;
bool doubled(int elem1, int elem2) //返回值是bool,就是谓词
{
return elem1 * == elem2;
} int main()
{
vector<int> ivec;
ivec.push_back();
ivec.push_back();
ivec.push_back();
ivec.push_back();
ivec.push_back();
ivec.push_back();
ivec.push_back();
for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
cout << *iter << ' ';
cout << endl; vector<int>::iterator pos;
pos = adjacent_find(ivec.begin(), ivec.end());//寻找两个连续相等的数
if (pos != ivec.end())
cout << "找到了,位置是:" << distance(ivec.begin(), pos) + << endl;
else
cout << "没有两个连续的相等的数" << endl; pos = adjacent_find(ivec.begin(), ivec.end(), doubled);//doubled就是谓词
if (pos != ivec.end())
cout << "找到了,符合doubled函数条件。位置是:" << distance(ivec.begin(), pos) + << endl;
else
cout << "没有两个连续的符合doubled函数条件" << endl; return ;
}
cb32a_c++_STL_算法_查找算法_(5)adjacent_find的更多相关文章
- cb34a_c++_STL_算法_查找算法_(7)_lower_bound
cb34a_c++_STL_算法_查找算法_(7)_lower_bound//针对已序区间的查找算法,如set,multiset关联容器-自动排序lower_bound()--第一个可能的位置uppe ...
- cb33a_c++_STL_算法_查找算法_(6)binary_search_includes
cb33a_c++_STL_算法_查找算法_(6)binary_search_includes//针对已序区间的查找算法,如set,multiset关联容器-自动排序binary_search(b,e ...
- cb31a_c++_STL_算法_查找算法_(4)find_first_of
cb31a_c++_STL_算法_查找算法_(4)find_first_offind_first_of(b,e,sb,se),sb,second begin, se,second end();find ...
- cb30a_c++_STL_算法_查找算法_(3)search_find_end
cb30a_c++_STL_算法_查找算法_(3)search_find_endsearch()pos = search(ideq.begin(), ideq.end(), ilist.begin() ...
- cb29a_c++_STL_算法_查找算法_(2)search_n
cb29a_c++_STL_算法_查找算法_(2)search_n//比如:连续查找连续的n个8search_n(b,e,c,v),迭代器b,begin(),e,end().连续的c个vpos=sea ...
- cb28a_c++_STL_算法_查找算法_(1)find_find_if
cb28a_c++_STL_算法_查找算法_(1)find_find_iffind() //线性查找,比较慢.pos1 = find(ilist.begin(), ilist.end(), 5);fi ...
- STL_算法_查找算法(lower_bound、upper_bound、equal_range)
C++ Primer 学习中. .. 简单记录下我的学习过程 (代码为主) //全部容器适用(O(log(n))) 已序区间查找算法 lower_bound() //找第一个符合的 ...
- STL_算法_查找算法(find、find_if)
C++ Primer 学习中. .. 简单记录下我的学习过程 (代码为主) find . find_if /**********************线性查找O(n) find(); find_if ...
- STL_算法_查找算法(binary_search、includes)
C++ Primer 学习中.. . 简单记录下我的学习过程 (代码为主) 全部容器适用(O(log(n))) 已序区间查找算法 binary_search //二分查 ...
随机推荐
- SPL数据结构
数据结构是计算机存储.组织数据的方式. SPL提供了双向链表.堆栈.队列.堆.降序堆.升序堆.优先级队列.定长数组.对象容器. 基本概念Bottom:节点,第一个节点称Bottom:Top:最后添加的 ...
- Mybatis配置-简单的使用
导包 基本配置 配置mybatis.config.xml文档 <?xml version="1.0" encoding="UTF-8" ?> < ...
- centos 7 vscode cmake 编译c++工程
一.环境说明 1)gcc/g++ cmake安装建议 gcc/g++内核自带的即可,如果需要新的自行安装, cmake也一样,如有需要新的版本自行安装. 2)vscode安装插件 必要的插件c/c+ ...
- Java线程的启动与中止
一.线程与进程的关系 关于进程与线程,百度百科上是这样描述的: 进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 在当 ...
- switch-case与if-else的转换
对学会成绩大于60分的,输出合格,低于60分的输出不合格 import java.util.Scanner; public class TestSwitch3 { public static void ...
- Vue拖拽交换数据(非插件)
HelloWorld.vue 文件 <template> <div class="hello"> <h1>{{ msg }}</h1> ...
- 郭盛华:DNS新漏洞可使黑客可以发起大规模DDoS攻击
近日,知名网络黑客安全专家.东方联盟创始人郭盛华微博披露了有关影响DNS协议的新缺陷的详细信息,该缺陷可被利用来发起放大的大规模分布式拒绝服务(DDoS)攻击,以击倒目标网站.该漏洞称为NXNSAtt ...
- SpringBoot 2.x 版本以put方式提交表单不生效的问题详解
在使用SpringBoot 2.x版本时,原有springboot 1.x 版本的通过在表单中添加 input框隐藏域指定_method = put 的方式失效. 虽然浏览器传参的确是带上了这个参数, ...
- HDL-数字电路建模的要点
https://mp.weixin.qq.com/s/tEDMWf1gk0e7u4hIWKM9bQ 一. 拓扑 数字电路的拓扑抽象出来之后比较简单,就是线(Wire)和开关(Swit ...
- Java实现 LeetCode 770 基本计算器 IV(暴力+分析题)
770. 基本计算器 IV 给定一个表达式 expression 如 expression = "e + 8 - a + 5" 和一个求值映射,如 {"e": ...