C++ 函数对象 与 C++ 泛型算法 find_if 和 count_if 结合的实例:
bool acompare(int i)
{
return i>=1;
}
template <typename T>
class CAcompare
{
public:
CAcompare(T a)
{
m_a = a;
}
bool operator()(T i)
{
return i >= m_a;
}
private:
T m_a;
};
void Example_fun2()
{
vector<int> m_iVec;
m_iVec.push_back(1);
m_iVec.push_back(2);
m_iVec.push_back(2);
m_iVec.push_back(1);
vector<int>::iterator result= find_if(m_iVec.begin(),m_iVec.end(),acompare);
cout<<"result count: " << *result <<endl;
int result_count = count_if(m_iVec.begin(),m_iVec.end(),acompare);
cout<<"result count" <<result_count<<endl;
cout<<"统计大于1 " <<endl;
//CAcompare<int> m_cap(2);
result_count = count_if(m_iVec.begin(),m_iVec.end(),CAcompare<int>(1));
cout<<"result: " << result_count<<endl;
}