【STL】标准库中count与count_if函数说明与例子
来源:互联网 发布:天津广播电视网络官网 编辑:程序博客网 时间:2024/05/21 11:17
count_if函数原型如下:
count函数原型如下:
count_if例子:
template<class _InIt, class _Pr> inline typename iterator_traits<_InIt>::difference_type count_if(_InIt _First, _InIt _Last, _Pr _Pred);前两个参数是iterator(迭代器),表示查找半闭合区间的前后两个位置,第三个参数为一个用户定义的predicate function object,而predicate意思就是说是一个返回值是bool型的仿函数(function object,也称functor)。
count函数原型如下:
template<class InputIterator, class T> inline size_t count( InputIterator First, InputIterator Last, const T& Value )前两个参数如上,只是第三个参数是一个T类型的常量,相比之下,count_if具有更大的灵活性。
count_if例子:
// countif.cpp// compile with: /EHsc//// Functions://// count_if - Count items in a range that satisfy a predicate.//// begin - Returns an iterator that points to the first element in// a sequence.//// end - Returns an iterator that points one past the end of a// sequence.// disable warning C4786: symbol greater than 255 character,// okay to ignore#pragma warning(disable: 4786)#include <iostream>#include <algorithm>#include <functional>#include <string>#include <vector>using namespace std;// Return true if string str starts with letter 'S'int MatchFirstChar( const string& str){ string s("S") ; return s == str.substr(0,1) ;}int main(){ const int VECTOR_SIZE = 8 ; // Define a template class vector of strings typedef vector<string > StringVector ; //Define an iterator for template class vector of strings typedef StringVector::iterator StringVectorIt ; StringVector NamesVect(VECTOR_SIZE) ; //vector containing names StringVectorIt start, end, it ; ptrdiff_t result = 0 ; // stores count of elements // that match value. // Initialize vector NamesVect NamesVect[0] = "She" ; NamesVect[1] = "Sells" ; NamesVect[2] = "Sea" ; NamesVect[3] = "Shells" ; NamesVect[4] = "by" ; NamesVect[5] = "the" ; NamesVect[6] = "Sea" ; NamesVect[7] = "Shore" ; start = NamesVect.begin() ; // location of first // element of NamesVect end = NamesVect.end() ; // one past the location // last element of NamesVect // print content of NamesVect cout << "NamesVect { " ; for(it = start; it != end; it++) cout << *it << " " ; cout << " }\n" << endl ; // Count the number of elements in the range [first, last +1) // that start with letter 'S' result = count_if(start, end, MatchFirstChar) ; // print the count of elements that start with letter 'S' cout << "Number of elements that start with letter \"S\" = " << result << endl ;}count例子:
// count.cpp// compile with: /EHsc//// Functions://// count - Count items in a range that match a value.// disable warning C4786: symbol greater than 255 character,// okay to ignore#pragma warning(disable: 4786)#include <iostream>#include <algorithm>#include <functional>#include <string>#include <vector>using namespace std;int main(){ const int VECTOR_SIZE = 8 ; // Define a template class vector of strings typedef vector<string > StringVector ; //Define an iterator for template class vector of strings typedef StringVector::iterator StringVectorIt ; StringVector NamesVect(VECTOR_SIZE) ; //vector containing names string value("Sea") ; // stores the value used // to count matching elements StringVectorIt start, end, it ; ptrdiff_t result = 0 ; // stores count of elements // that match value. // Initialize vector NamesVect NamesVect[0] = "She" ; NamesVect[1] = "Sells" ; NamesVect[2] = "Sea" ; NamesVect[3] = "Shells" ; NamesVect[4] = "by" ; NamesVect[5] = "the" ; NamesVect[6] = "Sea" ; NamesVect[7] = "Shore" ; start = NamesVect.begin() ; // location of first // element of NamesVect end = NamesVect.end() ; // one past the location // last element of NamesVect // print content of NamesVect cout << "NamesVect { " ; for(it = start; it != end; it++) cout << *it << " " ; cout << " }\n" << endl ; // Count the number of elements in the range [first, last +1) // that match value. result = count(start, end, value) ; // print the count of elements that match value cout << "Number of elements that match \"Sea\" = " << result << endl ;}
- 【STL】标准库中count与count_if函数说明与例子
- 【STL】标准库count_if的例子
- count与count_if详解
- 函数对象 与 count_if()结合使用 例子
- C++标准库---count()&count_if()
- STL中count和count_if的妙用
- STL 统计vector容器中指定对象元素出现的次数:count()与count_if()算法
- count和count_if函数
- STL之 count 和 count_if
- STL算法之count. count_if
- stl count_if()函数
- STL与标准库
- STL 计数(count,count_if)的用法
- count,count_if
- count count_if
- STL算法 count_if函数 accumulate函数
- STL 之count,count_if,max,max_element,min,min_element和random_shuffle
- STL 之count,count_if,max,max_element,min,min_element和random_shuffle
- 有1000桶酒,其中1桶有毒。而一旦吃了,毒性会在1周后发作。现在我们用小老鼠做实验,要在1周后找出那桶毒酒,问最少需要多少老鼠
- Android ApiDemos示例解析(148):Views->Layouts->LinearLayout->8. Gravity
- eclipse中如何远程debug
- 在Linux中设置线程的优先级
- hdu1245最短路+控制精度
- 【STL】标准库中count与count_if函数说明与例子
- Acess错误:"文件共享锁定数溢出"
- svn “无法为URL打开ra_local会话”的错误原因之一
- 网络拓扑自动发现算法
- 原子和离子的区别
- linux下更人性化的编程工具~~朋友推荐
- uImage、zImage、bzImage、vmlinuz 区别
- GridView绑定图片
- struts2中select标签的使用