`
mywebcode
  • 浏览: 999912 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

返回


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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics