count_if用法
2011-11-03 09:23
621 查看
template <class InputIterator, class Predicate> typename iterator_traits<InputIterator>::difference_type count_if ( ForwardIterator first, ForwardIterator last, Predicate pred ); | <algorithm> |
Returns the number of elements in the range [first,last) for which condition pred is true.
The behavior of this function template is equivalent to:
template <class InputIterator, class Predicate> ptrdiff_t count_if ( InputIterator first, InputIterator last, Predicate pred ) { ptrdiff_t ret=0; while (first != last) if (pred(*first++)) ++ret; return ret; } |
Parameters
first, lastForward iterators to the initial and final positions of the sequence of elements. The range used is [first,last), which contains all the elements between first and last, including the element pointedby first but not the element pointed by last.predUnary predicate taking an element in the range as argument, and returning a value indicating the falsehood (with false, or a zero value) or truth (true, or non-zero) of some condition applied to it. This can
either be a pointer to a function or an object whose class overloads operator().
Return value
The number of elements in the range [first,last) for which cond applied to it returns true.The return type (iterator_traits<InputIterator>::difference_type) is a signed integral type, generally defined as the same type as ptrdiff_t.
#include<iostream> #include<algorithm> #include<vector> using namespace std;; class Student{ public: int No; string strName; int grade; Student(int No,string strName,int grade):No(No),strName(strName),grade(grade){}; /*bool operator ==(int grade){ return this->grade==grade; }*/ }; class MatchExpress{ int grade; public: MatchExpress(int grade):grade(grade){}; bool operator()(Student& s){ return s.grade>grade; } }; int main(){ vector<Student>v; Student s1(1000,"张三",80); Student s2(1001,"李四",85); Student s3(1002,"王五",80); Student s4(1003,"赵六",80); v.push_back(s1); v.push_back(s2); v.push_back(s3); v.push_back(s4); int nCount; nCount=count_if(v.begin(),v.end(),MatchExpress(80)); cout<<nCount<<endl; }
相关文章推荐
- C++函数对象count_if用法(转)
- STL 计数(count,count_if)的用法
- mysql sum(if())和count(if())的用法
- 【C++STL】vector的count()和count_if()函数的用法
- C++函数对象count_if用法(转)
- std count_if用法
- STL_ count,count_if用法
- C++ ofstream和ifstream详细用法
- ifstream& operator>>函数无法获取空行和peek函数的用法
- JS中的if和else的用法以及基础语法
- 条件编译#define、#undef、#if、#elif、#elif defined、#elif !defined 、#endif用法
- 解析ifstream 与ofstream的用法
- fstream和ifstream详细用法
- Java入门学习-学习if & else,for循环,foreach循环,while循环的用法。
- TP里的case when用法。可以代替if判断
- fstream,ifstream,ofstream 详解与用法
- 关于MySQL里的found_row()和row_count()解释及用法
- 【转】C/C++指令 #undef ,#ifdef, #ifndef,#if的用法
- go语言if/else语句用法
- if/switch/while/do while/for/等循环及判断的简要用法案例