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