您的位置:首页 > 其它

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

2015-05-28 16:20 295 查看
count:在指定区间上统计指定值出现的次数。

count_if:条件统计

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

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

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

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

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

声明:

#include <algorithm>

template <class inputItr,class Type>

iterator_traits<inputItr>::difference_type count(inputItr first,inputItr last,const Type& value);



template <class inputItr,class unaryPredicate>

iterator_traits<inputItr>::difference_type count_if(inputItr first,inputItr last,unaryPredicate op);



template <class Type>

const Type& max(const Type& aVal, const Type&bVal);

template <class Type,class compare>

const Type& max(const Type& aVal,const Type& bVal,compare comp);



template <class forwardItr>

forwardItr max_element(forwardItr first,forwardItr last);

template <class forwardItr, class compare>

forwardItr max_element(forwardItr first,forwardItr last, compare comp);



template <class Type>

const Type& min(const Type& aVal, const Type&bVal);

template <class Type,class compare>

const Type& min(const Type& aVal,const Type& bVal,compare comp);



template <class forwardItr>

forwardItr min_element(forwardItr first,forwardItr last);

template <class forwardItr, class compare>

forwardItr min_element(forwardItr first,forwardItr last, compare comp);



template <class randomAccessItr>

void random_shuffle(randomAccessItr first, randomAccessItr last);

template <class randomAccessItr, class randomAccessGenerator>

void random_shuffle(randomAccessItr first,randomAccessItr last,randomAccessGenerator rand);

示例代码:

#include <iostream>

#include <list>



#include <string>

#include <numeric>

#include <iterator>

#include <vector>

#include <functional>



#include <algorithm>



using namespace std;



int main() {

char cList[10] = {'Z','a','Z','B','Z','c','D','e','F','Z'};

vector<char> charList(cList,cList+10);

ostream_iterator<char> screen(cout," ");

cout << "charList:" << endl;

copy(charList.begin(),charList.end(),screen);

cout << endl;



// count

int noofzs = count(charList.begin(),charList.end(),'Z');

cout << "count of Z = " << noofzs << endl;



// count_if

int noofupper = count_if(charList.begin(),charList.end(),isupper);

cout << "count of Upper = " << noofupper << endl;





int list[10] = {12,34,56,21,34,78,34,55,12,25};

ostream_iterator<int> screenInt(cout, " ");

cout << "list:" << endl;

copy(list,list+10,screenInt);

cout << endl;



// max_element

int * maxLoc = max_element(list,list+10);

cout << "the Largest element is " << *maxLoc << endl;



// min_element

int * minLoc = min_element(list,list+10);

cout << "the Smallest element is " << *minLoc << endl;



// random_shuffle

random_shuffle(list,list+10);

cout << "List.random_shuffle" << endl;

copy(list,list+10,screenInt);

cout << endl;



return 0;

}

运行结果:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐