gpt4 book ai didi

STL - STL count_if 的标准谓词

转载 作者:IT老高 更新时间:2023-10-28 23:03:21 28 4
gpt4 key购买 nike

我正在使用 STL 函数 count_if 来计算所有正值在 double vector 中。例如我的代码是这样的:

 vector<double> Array(1,1.0)

Array.push_back(-1.0);
Array.push_back(1.0);

cout << count_if(Array.begin(), Array.end(), isPositive);

其中函数isPositive定义为

 bool isPositive(double x) 
{
return (x>0);
}

以下代码将返回 2。有没有办法做到以上几点不写我自己的函数isPositive?有没有内置的我可以使用的功能?

谢谢!

最佳答案

std::count_if(v.begin(), v.end(), std::bind1st(std::less<double>(), 0))就是你想要的。

如果您已经是 using namespace std ,更清晰的版本是

count_if(v.begin(), v.end(), bind1st(less<double>(), 0));

所有这些东西都属于<functional> header ,以及其他标准谓词。

关于STL - STL count_if 的标准谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3282885/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com