C++ adjacent_find(STL adjacent_find)算法使用详解
2023-06-13 09:11:55 时间
adjacent_find() 算法可以用来搜索序列中两个连续相等的元素。用 == 运算符来比较连续的一对元素,返回的迭代器指向前两个相等元素中的第一个。如果没有一对相等的元素,这个算法返回这个序列的结束迭代器。例如:
string saying { Children should be seen and not heard. auto iter = std::adjacent_find(std::begin(saying), std::end(saying)); if (iter != std::end(saying)) std::cout In the following text: /n/ saying / /n *iter is repeated starting at index position std::distance(std::begin(saying), iter) std::endl;
这里会搜索 saying 字符串的前两个相等字符,所以这段代码的输出如下:
In the following text:
Children should be seen and not heard.
e is repeated starting at index position 20
adjacent_find() 算法的第二个版本,允许我们提供一个应用于连续元素的谓词。下面展示了如何用这个函数来查找这个序列中第一对都为奇数的连续整数:
std::vector long numbers {64L, 46L, -65L, -128L, 121L, l7L, 35L, 9L, 91L, 5L}; auto iter = std::adjacent_find(std::begin(numbers),std::end(numbers),[](long n1, long n2){ return n1 % 2 n2 % 2; }); if(iter != std::end(numbers)) std::cout The first pair of odd numbers is *iter and *(iter+1) std::endl;
当两个参数都不能被 2 整除时,这个 lambda 表达式就返回 true,所以这段代码会找到 121 和 17。
21784.html
html相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- C++STL初识,概念、六大组件、容器算法迭代器
- 手眼标定算法Tsai-Lenz代码实现(Python、C++、Matlab)
- 大数运算的算法设计和C++实现[通俗易懂]
- 猴子吃桃 -- C++ 算法
- 【手撕算法】图像融合之泊松融合:原理讲解及C++代码实现
- c++ auto类型_auto C++
- a星算法c++实现_递归算法理解
- c++界面开发工具_visual c++界面设计教程
- FUD-UUID-Shellcode:一款基于C++的Shellcode注入工具
- c++二分法查找_二分法查找python代码
- c++ primer读书笔记
- C/C++ 编写并提取通用 ShellCode
- C++ 中文周刊 第93期
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-193 Password Suspects(C++&Java)
- 【Android NDK 开发】JNI 方法解析 ( C/C++ 设置 Java 对象字段 | 查找字段 | 设置字段 )
- C++中的类继承之单继承&多继承&菱形继承详解编程语言
- php和c++自带的排序算法详解编程语言
- C++ stable_sort(STL stable_sort)排序算法详解
- C++ search(STL search)算法详解
- C++ partition_point(STL partition_point)算法使用详解
- C++ upper_bound(STL upper_bound)二分查找算法详解
- C++汉诺塔递归算法完全攻略
- c++int转string方法
- 海量数据处理系列之:用C++实现Bitmap算法
- 利用C++的基本算法实现十个数排序
- c++实现MD5算法实现代码
- C++火车入轨算法的实现代码
- C++实现N个骰子的点数算法