在类中定义static函数有什么作用?还有仿函数有什么好处?能举个例子么?
最近在看STL里面有很多仿函数和static函数,不大明白啊。
仿函数的好处书上说有三点:
1,他比一般函数更灵巧,因为他拥有自己的状态。
2,每个仿函数都有其自身的类型。因此你可以将仿函数的类型当作template参数来传递,从而指定某种行为的模式。容器的类型也会因为防函数的不同而不同。
3,执行速度上,仿函数比函数指针更快。
class less_equal_ten {
public:
bool operator() ( int val )
{ return val <= 10; }
};
count_if( vec.begin(), vec.end(), less_equal_ten() );
======================================================
class less_equal_value {
public:
less_equal_value( int val ) : _val( val ) {}
bool operator() ( int val ) { return val <= _val; }
private:
int _val;
};
count_if( vec.begin(), vec.end(), less_equal_value( 25 ));
============================================================
template < int _val >
class less_equal_value {
public:
bool operator() ( int val ) { return val <= _val; }
};
count_if( vec.begin(), vec.end(), less_equal_value<25>() );
=======================================================
以上是primer中的几个例子,他们所表达的意思是否就是所谓的优点?但第三个优点,我们怎么才能知道呢?