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 <algorithm>  
  2. template <class inputItr,class Type>  
  3. iterator_traits<inputItr>::difference_type count(inputItr first,inputItr last,const Type& value);  
  4.   
  5. template <class inputItr,class unaryPredicate>  
  6. iterator_traits<inputItr>::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 <iostream>  
  2. #include <list>  
  3.   
  4. #include <string>  
  5. #include <numeric>  
  6. #include <iterator>  
  7. #include <vector>  
  8. #include <functional>  
  9.   
  10. #include <algorithm>  
  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

利用 TensorFlow 训练自己的目标识别器。本文内容来自于我的毕业设计,基于 TensorFlow 1.15.0,其他 TensorFlow 版本运行可能存在问题。.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值