C++ 算法 count_if ()函数

C++ 算法 count_if ()函数

C++ 算法 count_if() 函数有一个 ‘pred’ 值,并返回范围[first,last)中pred的值为true的元素的数量。

语法

template <class InputIterator, class UnaryPredicate>

typename iterator_traits<InputIterator>::difference_type count_if(InputIterator first, InputIterator last,UnaryPredicate pred);

参数

first :它是范围中第一个元素的输入迭代器。

last :它是范围中最后一个元素的输入迭代器。

val :它是正在搜索的范围中的元素。

返回值

该函数返回范围[first,last)中满足pred条件的元素的数量。

示例1

#include<iostream>
#include<algorithm>
#include<vector>
bool isOdd(int k)
{
    return((k%2)==1);
}
int main()
{
    std::vector<int> newvector;
    for(int k=1; k<10; k++)
    newvector.push_back(k);
    int newcount=count_if(newvector.begin(),newvector.end(),isOdd);
    std::cout<<"newvector contains "<<newcount<<" odd values.\n";
    return 0;
}

输出:

newvector contains 5 odd values.

示例2

#include<bits/stdc++.h>
using namespace std;
bool isEven(int k)
{
    if(k%2==0)
    return true;
}
int main()
{
    vector<int> u;
    for(int i=0; i<10; i++)
    {
        u.push_back(i);
    }
    int noEven=count_if(u.begin(),u.end(),isEven);
    cout<<"Count of even number is:"<<noEven;
    return 0;
}

输出:

Count of even number is: 10

复杂性

函数的复杂性是线性的,直到第一个元素和最后一个元素之间的距离。

数据竞争

对范围的某些或所有元素进行访问。

异常

如果任何参数抛出异常,该函数会抛出一个异常。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程