| Christopher Smith on 15 Aug 2003 16:01:07 -0000 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: [ALACPP] bound for success! |
On Fri, 2003-08-15 at 08:25, Gavin Doughtie wrote:
> OK, I want to be Arlo and write the following code:
>
> for(unsigned int i(0); i < mySourceVect.size(); ++i) {
> myDestVect.push_back(aTransformationFunction(mySourceVect[i]));
> }
Shame on you for using indexes instead of iterators. ;-)
> with std::for_each and std::generate and boost::bind. More specifically,
> ow does one get an iterated element from mySourceVect as the input
> parameter to a bound functor for std::generate?
I'm not entirely sure I understand what what you are trying to
accomplish here, but it looks like you are trying to do something like
Samlltalk's collect. I've always wondered why there wasn't a clear STL
analogue to that. I'd suggest making one of your own (somewhat pseudo
codish here):
template<typename InputIterator,
typename OutputIterator,
typename Predicate>
OutputIterator collect(InputIterator first,
InputIterator last,
OutputIterator result,
Predicate pred) {
for(InputIterator i = first, i != last; ++i) {
*result++ = pred(*i);
}
return result;
}
collect(mySourceVect.begin(),
mySourceVect.end(),
back_insert_iterator(myDestVect),
myTransFormationFunction);
One misses having collect often enough that I think it's worth writing
something for it.
--
Christopher Smith <x@xxxxxxxx>
_______________________________________________
alacpp mailing list
alacpp@xxxxxxxxxxx
http://lists.ellipsis.cx/mailman/listinfo/alacpp