108.STL adjacent_find算法
2023-12-13 04:08:19
adjacent_find
是C++ STL中的算法之一,用于在指定范围内查找相邻重复的元素,返回第一对相邻重复元素的第一个元素的迭代器。以下是
adjacent_find
的基本用法:#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector<int> numbers = { 1, 2, 2, 3, 4, 4, 5, 6 }; // 使用 adjacent_find 查找相邻重复的元素 vector<int>::iterator it = adjacent_find(numbers.begin(), numbers.end()); if (it != numbers.end()) { cout << "找到了相邻重复的元素:" << *it << endl; } else { cout << "未找到相邻重复的元素" << endl; } return 0; }
在这个例子中,
adjacent_find
查找了相邻的两个重复元素,即 2 和 4。如果找到了相邻重复元素,返回的迭代器指向第一个重复元素;如果未找到,返回的迭代器等于numbers.end()
。也可以通过提供谓词函数来自定义判定条件。例如,如果你想查找相邻元素之差为1的情况:
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector<int> numbers = { 1, 3, 4, 7, 8, 10, 11 }; // 使用 adjacent_find 自定义谓词函数 auto customPredicate = [](int a, int b) { return std::abs(a - b) == 1; }; vector<int>::iterator it = std::adjacent_find(numbers.begin(), numbers.end(), customPredicate); if (it != numbers.end()) { cout << "找到了相邻差值为1的元素:" << *it << endl; } else { cout << "未找到相邻差值为1的元素" << endl; } return 0; }
文章来源:https://blog.csdn.net/weixin_63779802/article/details/134938103
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!