我想根据自己的参数使用count_if
I Want To use count_if based on my own parameters
示例我有一个整数值的向量,我不想计算该向量中指定我自己的运行时输入的任何元素。检查矢量具有标高10、20、30、40并且在运行时,我获取输入k;并且想要计数满足>k
int ar[4]={10,44,36,14};
vector<int>shiva(ar,ar+4);
int k;
cin>>k;
cout<<*count_if(shiva.begin(),shiva.end(),myfun(k));
如何使结构发挥作用?我想打印满足>k的元素的总数;
您可以使用lambda函数来解决此问题。count_if
函数遍历vector
shiva
,并将每个元素作为int i
传递到lambda函数中。lambda函数检查i
是否大于k
,并返回一个bool
。它知道k
的值,因为我们允许它通过将捕获指定为[k]
来按值捕获变量k
。
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> shiva {10,44,36,14};
int k;
std::cin >> k;
std::cout << std::count_if(shiva.begin(),
shiva.end(),
[k](int i) { return i > k; })
<< std::endl;
return 0;
}
下面是一个演示如何使用C++98:
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
struct greater_than
{
int k;
greater_than(int k) : k(k) {}
bool operator () (int val) const {
return val > k;
}
};
int main()
{
int ar[4] = { 10,44,36,14 };
vector<int> shiva(ar, ar + 4);
int k;
cin >> k;
cout << count_if(shiva.begin(), shiva.end(), greater_than(k)) << endl;
}
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 如何将enable-if与模板参数和参数包一起使用
- 无论条件是否为true,if总是在c++中执行
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 如何删除peer if else分支中的冗长句子
- 我似乎对if/else的基本语句有问题:/
- if数组上的随机数
- 将按位if条件转换为普通if条件
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 使用if-else将数字转换为单词
- 为什么简单的算术减法在"if"条件下不起作用?
- 以在Qt中的IF语句中设置时间延迟
- 访问可能不存在的const vector成员- try/catch或if (count != 0)