首先是定义函数对象:其实也就是定义一个public的operator()函数,其参数跟在()之后,用()括起来。返回值经常是bool型。
class compare{
public:
bool operator()(const string &a,const string &b ){
if(a[0]==b[0])
return true;
}
};
使用的时候,
<pre name="code" class="cpp"> compare hg;
vector<string>::iterator to_delete = unique(not_free_id.begin(),not_free_id.end(),hg);
或者
vector<string>::iterator to_delete = unique(not_free_id.begin(),not_free_id.end(),compare());
这个compare()的用法其实就是生成一个临时对象,并用这个临时对象为形参赋值。
比如
cout << int(100) << endl;
这样会在控制台打印出100,这个和上面的是一样的,都是生成临时对象。