STL算法--------函数对象

1.预定义的函数对象

2.自定义的函数对象

3.容器和函数对象

4.算法和函数对象

#include <iostream>
#include <set>
#include <algorithm>
#include <vector>

using namespace std;
void Print( int elem )
{
	cout<<elem<<" ";
}

//函数对象
class PrintInt{
	public:
		void operator() (int elem) const
		{
			cout<< elem <<' ';
		}
};

int main()
{
	set<int, greater<int> > a;
	set<int, less<int> > b;
	
	a.insert(9);
	a.insert(3);
	a.insert(8);
	a.insert(1);
	a.insert(5);

	for(set<int,greater<int> >::const_iterator itr = a.begin(); itr != a.end(); ++itr)
	{
		cout<<*itr<<endl;
	}

	vector<int> ivec;
	for( int i=0; i<9; ++i )
	{
		ivec.push_back(i);
	}

	//algorithm
	for_each(ivec.begin(), ivec.end(), Print);
	cout<<endl;

	for_each(ivec.begin(), ivec.end(), PrintInt() );
	cout<<endl;

	return 0;
}


posted @ 2015-03-03 15:12  SandKing  阅读(5)  评论(0)    收藏  举报  来源