/* // TEMPLATE FUNCTION find_if template<class _InIt, 	class _Pr> inline 	_InIt _Find_if(_InIt _First, _InIt _Last, _Pr _Pred) 	{	// find first satisfying _Pred 	_DEBUG_RANGE(_First, _Last); 	_DEBUG_POINTER(_Pred); 	for (; _First != _Last; ++_First) 		if (_Pred(*_First)) 			break; 	return (_First); 	}  template<class _InIt, 	class _Pr> inline 	_InIt find_if(_InIt _First, _InIt _Last, _Pr _Pred) 	{	// find first satisfying _Pred 	_ASSIGN_FROM_BASE(_First, 		_Find_if(_CHECKED_BASE(_First), _CHECKED_BASE(_Last), _Pred)); 	return (_First); 	}  		// TEMPLATE FUNCTION adjacent_find template<class _FwdIt> inline 	_FwdIt _Adjacent_find(_FwdIt _First, _FwdIt _Last) 	{	// find first matching successor 	_DEBUG_RANGE(_First, _Last); 	for (_FwdIt _Firstb; (_Firstb = _First) != _Last && ++_First != _Last; ) 		if (*_Firstb == *_First) 			return (_Firstb); 	return (_Last); 	}  template<class _FwdIt> inline 	_FwdIt adjacent_find(_FwdIt _First, _FwdIt _Last) 	{	// find first matching successor 	_ASSIGN_FROM_BASE(_First, 		_Adjacent_find(_CHECKED_BASE(_First), _CHECKED_BASE(_Last))); 	return (_First); 	} 	*/   //*********************by vincent http://my.csdn.net/sunboyiris  ************************// #include "stdafx.h" #include "algorithm" #include "list" #include "iostream" using namespace std;  bool fun(int x) {return x%3?false:true;} int _tmain(int argc, _TCHAR* argv[]) { 	list<int> l; 	for(int i=100;i<109;i++) 	{ 	l.push_back(i); 	} 	//引用指针 	int count1=0; 	list<int>::iterator iter; 	for(iter=l.begin();iter!=l.end();iter++) 	{  	count1++; 	} 	cout<<count1<<endl;  	 	list<int>::iterator iter1=find_if(l.begin(),l.end(),fun); 	if(iter1!=l.end()) 	{ 	cout<<"找到元素能被3整除"<<endl; 	cout<<"前一个元素为:"<<*(--iter1)<<endl; 	} 	return 0; } 
STL(3) find_if函数_算法