1、 adjacent_find

功能描述:

  • 查找相邻重复元素

函数原型:

  • adjacent_find(iterator beg, iterator end);
    // 查找相邻重复元素,返回相邻元素的第一个位置的迭代器
    // beg 开始迭代器
    // end 结束迭代器
2、 binary_search

功能描述:

  • 查找指定元素是否存在

函数原型:

  • bool binary_search(iterator beg, iterator end, value);
    // 查找指定的元素,查到 返回true 否则false
    // 注意: 在无序序列中不可用
    // beg 开始迭代器
    // end 结束迭代器
    // value 查找的元素
3、 示例代码
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;/*返回bool类型的函数对象(仿函数)称为谓词*/class Greater
{public:bool operator()(int v)//如果operator()接受一个参数,那么叫做一元谓词{return v < 5;//返回小于5的元素}
};void test01()//find_if条件查找算法:内置数据类型
{vector<int> v;v.push_back(10);v.push_back(11);v.push_back(1);v.push_back(2);//find_if算法:查找符合条件的元素,前两个参数是区间迭代器,最后一个参数是谓词,也就是查找规则条件//返回值:如果找到了,返回这个元素迭代器的位置,如果未找到,返回迭代器end();//Greater()是匿名函数对象,因为普通用法是需要用类实例化出一个对象的,这里没有名字,所以说是匿名对象vector<int>::iterator ret = find_if(v.begin(), v.end(), Greater());if (v.end() == ret){cout << "元素未找到" << endl;}else{cout << "找到元素为:" << *ret << endl;}
}//adjacent 临近的
void test02()//查找相邻重复元素,两个关键词:相邻  重复  (一般开发中用的比较少,可能会在面试题中出现)
{vector<int> v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(2);v.push_back(4);v.push_back(4);vector<int>::iterator it = adjacent_find(v.begin(), v.end());if (it == v.end()){cout << "无相邻元素" << endl;}else{cout << "相邻重复元素为:" << *it << endl;//输出 3}
}//注意:查找的容器中元素必须是有序的,无序数组可能会出错,这也是二分法的要求
void test03()//二分查找算法,查找容器中是否存在某个值
{vector<int> v;for (int i = 0;i < 10;i++){v.push_back(i);}bool ret = binary_search(v.begin(), v.end(), 8);//返回值不是迭代器,而是bool类型,有就返回真,反之假if (ret == true){cout << "元素存在" << endl;}else{cout << "元素不存在" << endl;}}int main()
{//  test02();// adjacent_find 相邻重复元素查找test03();// binary_search 二分法查找某个元素return 0;
}

C++ 学习之查找算法adjacent_find(相邻重复查找)、binary_search(二分法查找)相关推荐

  1. 我所知道查找算法之斐波拉契(黄金分割法)查找

    作者前言 大家好,我是阿濠,今篇内容跟大家分享的是查找算法之斐波那契(黄金分割法)查找,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步. 一.斐波那契数列 ...

  2. python二分查找算法_如何使用python的二分查找算法

    如何使用python的二分查找算法 发布时间:2020-11-18 09:27:29

  3. 查找算法之三:斐波那契查找(黄金分割法)

    斐波那契查找 思路分析 代码实现 思路分析 FibonacciSearch(也叫黄金分割法)的思路分析: ==>实际上,这也是一个基于二分查找(也就是折半查找)的查找算法.只是在计算mid 的值 ...

  4. STL算法——常用查找算法(find、find_if、adjacent_find、binary_search、count、count_if)

    5.2 常用查找算法 学习目标: 掌握常用的查找算法 算法简介: find //查找元素 find_if //按条件查找元素 adjacent_find //查找相邻重复元素 binary_searc ...

  5. 【算法学习】四 二分法查找(折半法或者折半查找)

    前言 社长,一个爱学习,爱分享的程序猿,始终相信,付出总会有回报的.知识改变命运,学习成就未来.爱拼才会赢! 程序猿学社的GitHub,已整理成相关技术专刊,欢迎Star:. https://gith ...

  6. list 查找_五千字长文带你学习 二分查找算法

    点击上方"与你一起学算法",选择"星标"公众号 重磅干货,第一时间送达 二分查找的思想 提及二分查找算法,我想大部分人都不陌生,就算不是学计算机的,基本上也都使 ...

  7. C++ STL 常用查找算法

    C++ STL 常用查找算法 adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器.否则返回past-the-end. ...

  8. STL常用的查找算法

    常用的查找算法 adjacent_find() binary_search count() count_if() find() find_if() adjacent_find() 在iterator对 ...

  9. c++中STL的常用算法---2(遍历算法,查找算法)

    算法概述 算法主要由头文件组成 是所有STL头文件中最大的一个,其中常用的功能涉及到比较,交换,查找,遍历,复制,修改,反转,排序,合并等 体积很小,只包括在几个序列容器上进行的简单运算的模板函数 定 ...

最新文章

  1. 查找局域网中的DHCP服务器
  2. 3D模型初探(人体运动学)
  3. jBPM 流程设计器和查看【包括Web形式】的总结
  4. 第13天:提取方法对象
  5. mysql5.7.20非安装版_mysql 5.7.20\5.7.21 免安装版安装配置教程
  6. Matlab | 数字信号处理:FIR滤波器结构的实现
  7. zabbix监控防火墙和交换机
  8. 浮动—春联(文字竖直排列)
  9. 细说说傲腾与哈娜的那些事儿
  10. 关于C中字符串的输入和输出使用的函数不同所造成的影响
  11. [02]基于webservice权限系统
  12. C++视频和讲义下载地址
  13. 数学系之必备参考书+数学系教材推荐
  14. Go语言-测试与性能分析
  15. 开发者案例 | 灵活高效涂鸦社区PaaS,助力社区智能化升级
  16. WIFI手机使用正常电脑使用卡顿解决方案
  17. Spring加载时报错处理
  18. 景区厕所污水处理有哪些问题?
  19. MacOS Ventura 13.0 (22A380) 正式版带 OC 0.8.5 and winPE 双分区原版黑苹果镜像
  20. pyechart省份名称重叠解决方法

热门文章

  1. 创建TLS客户端凭据时发生严重错误,内部错误状态为10013
  2. 【MATLAB高等数学】十种常用二次曲面及其matlab绘制
  3. 晒晒名企大公司的工资收入
  4. 没撑过2020,我从外包公司离职了
  5. SugarCRM Professional:适合中小企业的CRM客户管理平台
  6. Linux进程网络流量统计方法及实现
  7. 单片机 + 4G模块7S1上有人云平台自己添加变量进行温度采集,将数据发送有人云平台
  8. 2011.3.12 (ULE)
  9. R语言实战:机器学习与数据分析源代码6(最终弹)
  10. FCA-FineReport认证考试题(2022-10-31)