看完这个点:我只想说我们的代码可以看起来更加高大上、更加的避免不必要的错误
但是这得平时多积累多用STL标准算法。
如:
class Widget
{
public:
。。。。。。
void redraw() const;
。。。。。。。。。。
} ;
list < Widget> lw;
for ( list<Widget>::iterator i = lw.begin() ; i != lw.end() ; ++i ){ i->redraw() ;}
你也可以用for_each 算法来完成
for_each( lw.begin() , lw.end() , mem_fun_red( &Widget::redraw ));
还可以
template <typename T>
class BetweenValues:
{
public:
BetWeenValues( const T& lowValues , const T& highValue ):lowVal( lowValue),highVal( highValue){}
bool operator()( const T& val ) const
{
return val > lowVal && val < highVal;
}
private:
T lowVal;
T highVal;
};
vector < int >::iterator = find_if( v.begin() ,v.end() , BetweenValues<int>(x,y)); 找出符合重载要求的数据