
13 Sep
2003
13 Sep
'03
10:52 a.m.
You can find an implementation of copy_if in Boost Wiki here: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?STLAlgorithmE... An extension that i find useful is the following: template<class II, class OI, class PRED> std::pair<II,OI> copy_if(II ibegin, II iend, OI obegin, OI oend, PRED p) { for(; ibegin != iend; ++ibegin) { if(p(*ibegin)) { *obegin = *ibegin; if(++obegin == oend) break; } } return std::make_pair(ibegin, obegin); } Here we have a finite sized sink. Items are copied from the source if they satisfy the condition and if there is room left in the sink. The positions reached are returned on termination of the algorithm. Witz