gpt4 book ai didi

c++ - 计算大于 vector 中数字的元素

转载 作者:太空狗 更新时间:2023-10-29 23:32:01 26 4
gpt4 key购买 nike

我想计算 C++ vector 中大于某个数字的元素的数量。阈值由用户输入。

计算大于数字的元素的代码如下:

ctr=count_if(v.begin(),v.end(), greater1);

对应函数:

bool greater1(int value)
{
return value >= 8;
}

问题是我只能在 count_if 函数调用之前知道阈值(此处为 8),因此我需要将阈值 t 作为参数传递。如何建立相同的?

最佳答案

注意仅适用于 c++11 标准

最简单的方法是使用 lambda expression .使用它,您可以在 count_if 的调用站点中构建一个仿函数(称为闭包对象),并且您可以在 lambda 主体中使用您当时已知的内容。那会给你留下类似的东西

auto minimum_value = /* something that gets the minimum value you want to use for the comparison */
auto count = std::count_if(v.begin(), v.end(),[&](auto const& val){ return val >= minimum_value; });
// ^ use this to capture a reference of minimum_value

关于c++ - 计算大于 vector 中数字的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57151983/

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