算法简介:
find
功能:查找指定元素,找到返回指定元素的迭代器,找不到就返回结束迭代器end()
find_if
按条件查找元素
- 功能:根据自定义条件查找第一个匹配元素。
- 参数: find_if(起始迭代器, 结束迭代器, 谓词)
- 返回值:找到则返回对应迭代器,没找到返回 end() 。
- 示例:
cpp
auto it = find_if(v.begin(), v.end(), [](int val) {
return val > 3; // 找大于3的元素
});
adjacent_find
-
功能:查找容器中相邻且相等的元素对。
-
参数: adjacent_find(起始迭代器, 结束迭代器)
-
返回值:找到则返回第一个元素的迭代器,没找到返回 end() 。
-
示例:
vector<int> v = {1,2,2,3,4}; auto it = adjacent_find(v.begin(), v.end()); // 找到第二个2的迭代器
binary_search
-
功能:在有序容器中快速查找指定值(二分查找)。
-
参数: binary_search(起始迭代器, 结束迭代器, 目标值)
-
返回值:找到返回 true ,没找到返回 false 。
-
注意:容器必须是有序的,否则结果不可靠。
-
示例:
bool exists = binary_search(v.begin(), v.end(), 3);
count
-
功能:统计容器中指定值出现的次数。
-
参数: count(起始迭代器, 结束迭代器, 目标值)
-
返回值:返回匹配元素的数量。
-
示例:
int num = count(v.begin(), v.end(), 2);
count_if
-
功能:根据自定义条件统计匹配元素的数量。
-
参数: count_if(起始迭代器, 结束迭代器, 谓词)
-
返回值:返回匹配元素的数量。
-
示例:
int num = count_if(v.begin(), v.end(), [](int val) { return val > 2; // 统计大于2的元素数量 });
总结对比
算法 核心用途 返回值类型
find 查找指定值的第一个元素 迭代器
find_if 按条件查找第一个元素 迭代器
adjacent_find 查找相邻相等的元素对 迭代器
binary_search 有序容器中快速查找值 bool
count 统计指定值的出现次数 整数
count_if 按条件统计元素数量 整数