【发布时间】:2011-03-12 05:43:01
【问题描述】:
您如何使用for_each() 在容器的some 部分上调用Function?
我创建了一个for_each_if() 来做一个
for( i in shapes )
if( i.color == 1 )
displayShape(i);
电话看起来像
for_each_if( shapes.begin(), shapes.end(),
bind2nd( ptr_fun(colorEquals), 0 ),
ptr_fun( displayShape ) );
bool colorEquals( Shape& s, int color ) {
return s.color == color;
}
但是,我觉得模仿类似 STL 的算法不是我应该做的事情。
-
有没有办法只使用现有的 STL 关键字来生成这个?
我做了不想做一个
for_each( shapes.begin(), shapes.end(), bind2nd( ptr_fun(display_shape_if_color_equals), 0 ) );因为在更复杂的情况下,函子名称会误导函子的含义
*有没有一种方法可以访问结构的成员(如
colorEquals)以访问像for_each这样的函数,而无需创建函数? *
【问题讨论】: