用c++stl编写一个完整代码,查找大于阈值的元素并输出: 定义一个函数对象,查找并输出所有大于给定阈值的元素,使用 for_each。
时间: 2024-10-14 15:02:02 浏览: 29
在C++中,你可以使用STL中的`std::for_each`结合自定义的函数对象来遍历容器,检查每个元素是否大于指定的阈值,并在满足条件时输出它们。这里我们假设有一个名为`GreaterThanThreshold`的函数对象来进行这样的操作。下面是完整的代码示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 自定义函数对象
struct GreaterThanThreshold {
double threshold;
GreaterThanThreshold(double t) : threshold(t) {}
template<typename T>
bool operator()(T value) const {
return value > threshold;
}
};
void print_greater_than_threshold(const std::vector<double>& vec, double threshold) {
GreaterThanThreshold finder(threshold);
std::for_each(vec.begin(), vec.end(), finder);
for (auto& element : vec) {
if (finder(element)) {
std::cout << element << " ";
}
}
std::cout << std::endl;
}
int main() {
std::vector<double> numbers = {10, 20, 30, 15, 25, 35, 40};
double threshold = 25;
print_greater_than_threshold(numbers, threshold);
return 0;
}
阅读全文