C++ 算法 find_if() 函数
定义和用法
find_if() 函数用于在数据范围内查找首个满足指定条件的元素,并返回指向该元素的迭代器。若未找到符合条件的元素,则返回指向数据范围末尾的迭代器。
数据范围通过迭代器指定。
条件由一个谓词函数定义,该函数接收元素值作为参数并返回布尔值:满足条件返回 true,不满足返回 false。
实例
在 vector 中查找首个大于 5 的数字:
bool greater_than_5(int value) {
return value > 5;
}
int main() {
vector<int> numbers = {1, 7, 3, 5, 9, 2};
auto it = find_if(numbers.begin(), numbers.end(), greater_than_5);
if (it != numbers.end()) {
cout << "找到大于5的数字:" << *it; // 输出7
} else {
cout << "未找到大于5的数字";
}
return 0;
}
语法
find_if(iterator start, iterator end, function condition);
参数
| 参数 | 描述 |
|---|---|
| start | 必需。指向数据范围起始位置的迭代器。 |
| end |
必需。指向数据范围结束位置的迭代器。 将搜索到该位置之前的元素。 |
| condition | 必需。接收元素值并返回布尔值的谓词函数。 |
技术细节
| 返回: |
指向首个满足条件元素的迭代器。 若未找到则返回 end 迭代器。 |
|---|
相关页面
教程:C++ 数据结构
教程:C++ 迭代器
教程:C++ 算法
教程:C++ 布尔值