21xrx.com
2024-11-05 18:54:48 Tuesday
登录
文章检索 我的文章 写文章
C++中的countif函数
2023-07-04 23:53:46 深夜i     --     --
C++ countif函数 数组处理 条件判断 循环语句

C++中的countif函数是一个非常有用的函数,可以用于统计满足某个条件的元素数量。

该函数的语法如下:


int count_if(InputIterator first, InputIterator last, UnaryPredicate pred);

其中,`first`和`last`分别表示容器的起始和末尾迭代器,`pred`是一个一元谓词(一元函数对象或函数指针),用于指定匹配条件。

该函数的返回值为满足条件的元素数量。

下面是一个简单的示例,用于统计一个容器中大于10的元素数量:


#include <iostream>

#include <vector>

#include <algorithm>

int main() {

  std::vector<int> v1;

  int count = std::count_if(v.begin(), v.end(), [](int x)return x > 10;);

  std::cout << "count: " << count << std::endl;

  return 0;

}

输出结果为:`count: 4`。

在这个示例中,我们使用了Lambda表达式作为谓词,用于判断一个元素是否大于10。`std::count_if`函数统计了满足这个条件的元素数量,并将其返回给变量`count`。

除了Lambda表达式之外,我们还可以使用自定义的函数对象或函数指针作为谓词,例如:


struct GreaterThan {

  int threshold;

  GreaterThan(int t) : threshold(t) {}

  bool operator()(int x) const

    return x > threshold;

  

};

int main() {

  std::vector<int> v 11;

  int count = std::count_if(v.begin(), v.end(), GreaterThan(10));

  std::cout << "count: " << count << std::endl;

  return 0;

}

在这个示例中,我们定义了一个名为`GreaterThan`的函数对象,用于比较一个元素是否大于某个阈值。这个函数对象接受一个`int`类型的参数作为阈值,并通过重载`operator()`函数实现比较。

最后,我们可以使用`std::count`函数来统计一个容器中等于某个值的元素数量,例如:


int main() {

  std::vector<int> v 3;

  int count = std::count(v.begin(), v.end(), 2);

  std::cout << "count: " << count << std::endl;

  return 0;

}

在这个示例中,我们使用`std::count`函数来统计容器`v`中等于2的元素数量,输出结果为:`count: 3`。

总的来说,C++中的`countif`函数以及相关函数`count`是非常有用的函数,可以帮助我们快速地统计满足某种条件的元素数量,从而简化代码并提高效率。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复