很好的blog:
文章1
结合stl的算法使用
http://blog.csdn.net/bonchoix/article/details/8050627
下面是练习代码
class CStringSort
{
public:
bool operator() (const string &str1, const string &str2)
{
return str1 > str2;
}
};
set<string, CStringSort> myset;
myset.insert("A");
myset.insert("B");
class SuccessiveNumGen
{
public:
SuccessiveNumGen(int origen = 0) :m_origen(origen){}
int operator()()
{
return m_origen++;
}
private:
int m_origen;
};
vector<int> dest;
generate_n(back_inserter(dest), 10, SuccessiveNumGen(3));
generate(++dest.begin(), --dest.end(), SuccessiveNumGen(10));
class NoLess
{
public:
NoLess(int min = 0) :m_min(min){}
bool operator()(int value) const
{
return value >= m_min;
}
private:
int m_min;
};
vector<int> dest;
for (int i = 0; i < 20; ++i)
dest.push_back(i);
auto idx = find_if(dest.begin(), dest.end(), NoLess(10));
文章2
##函数适配器
可以组合很多函数对象,搭配出更复杂的函数对象。(可以看文末的例子)