STL 之count,count_if,max,max_element,min,min_element和random_shuffle

count:在指定区间上统计指定值出现的次数。

count_if:条件统计

max:判断两个数值中的较大值

max_element:查找指定区间的最大元素

min:判断两个数值中的较小值

min_element:查找指定区间的最小元素

random_shuffle:用来将指定区间上的元素按随机顺序排列


声明:

  1. #include   
  2. template <class inputItr,class Type>  
  3. iterator_traits::difference_type count(inputItr first,inputItr last,const Type& value);  
  4.   
  5. template <class inputItr,class unaryPredicate>  
  6. iterator_traits::difference_type count_if(inputItr first,inputItr last,unaryPredicate op);  
  7.   
  8. template <class Type>  
  9. const Type& max(const Type& aVal, const Type&bVal);  
  10. template <class Type,class compare>  
  11. const Type& max(const Type& aVal,const Type& bVal,compare comp);  
  12.   
  13. template <class forwardItr>  
  14. forwardItr max_element(forwardItr first,forwardItr last);  
  15. template <class forwardItr, class compare>  
  16. forwardItr max_element(forwardItr first,forwardItr last, compare comp);  
  17.   
  18. template <class Type>  
  19. const Type& min(const Type& aVal, const Type&bVal);  
  20. template <class Type,class compare>  
  21. const Type& min(const Type& aVal,const Type& bVal,compare comp);  
  22.   
  23. template <class forwardItr>  
  24. forwardItr min_element(forwardItr first,forwardItr last);  
  25. template <class forwardItr, class compare>  
  26. forwardItr min_element(forwardItr first,forwardItr last, compare comp);  
  27.   
  28. template <class randomAccessItr>  
  29. void random_shuffle(randomAccessItr first, randomAccessItr last);  
  30. template <class randomAccessItr, class randomAccessGenerator>  
  31. void random_shuffle(randomAccessItr first,randomAccessItr last,randomAccessGenerator rand);  

示例代码:

  1. #include   
  2. #include   
  3.   
  4. #include   
  5. #include   
  6. #include   
  7. #include   
  8. #include   
  9.   
  10. #include   
  11.   
  12. using namespace std;  
  13.   
  14. int main() {  
  15.     char cList[10] = {'Z','a','Z','B','Z','c','D','e','F','Z'};  
  16.     vector<char> charList(cList,cList+10);  
  17.     ostream_iterator<char> screen(cout," ");  
  18.     cout << "charList:" << endl;  
  19.     copy(charList.begin(),charList.end(),screen);  
  20.     cout << endl;  
  21.       
  22.     // count  
  23.     int noofzs = count(charList.begin(),charList.end(),'Z');  
  24.     cout << "count of Z = " << noofzs << endl;  
  25.   
  26.     // count_if  
  27.     int noofupper = count_if(charList.begin(),charList.end(),isupper);  
  28.     cout << "count of Upper = " << noofupper << endl;  
  29.   
  30.   
  31.     int list[10] = {12,34,56,21,34,78,34,55,12,25};  
  32.     ostream_iterator<int> screenInt(cout, " ");  
  33.     cout << "list:" << endl;  
  34.     copy(list,list+10,screenInt);  
  35.     cout << endl;  
  36.   
  37.     // max_element  
  38.     int * maxLoc = max_element(list,list+10);  
  39.     cout << "the Largest element is " << *maxLoc << endl;  
  40.   
  41.     // min_element  
  42.     int * minLoc = min_element(list,list+10);  
  43.     cout << "the Smallest element is " << *minLoc << endl;  
  44.   
  45.     // random_shuffle  
  46.     random_shuffle(list,list+10);  
  47.     cout << "List.random_shuffle" << endl;  
  48.     copy(list,list+10,screenInt);  
  49.     cout << endl;  
  50.       
  51.     return 0;  
  52. }  

运行结果:

charList:
Z a Z B Z c D e F Z
count of Z = 4
count of Upper = 7
list:
12 34 56 21 34 78 34 55 12 25
the Largest element is 78
the Smallest element is 12
List.random_shuffle
12 34 25 56 12 78 55 21 34 34


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部