| Jason Fredrickson on 15 Aug 2003 16:31:47 -0000 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| FW: [ALACPP] bound for success! |
> 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]));
> }
>
Correct me if I'm wrong, but isn't this exactly what std::transform is
designed to let you do? So you'd want something like:
std::transform(mySourceVect.begin(),
mySourceVect.end(),
std::back_inserter(myDestVect),*
boost::bind(&aTransformationFunction, _1));
* I don't remember exactly what the back insertion syntax is for a
vector.
Transform is designed to iterate one range and call the function on each
element, then put the output into the output iterator. For_each is
designed to iterate a range and call the function, but the output is
just dropped. Generate is designed to assign the output of a
parameterless function.
All this, of course, assumes that your transformation function is an
actual function, and you're not trying to create it in-line...
Jason
Jason Fredrickson
Vice-President, Operations
Agile Solutions
Jason.Fredrickson@xxxxxxxxxxxx
(626) 446-8925
> 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?
>
> Personally, the for loop looks the most compact and obvious, but I'm
> trying to get these other tools in more widespread use at work.
>
> Sample code, anyone?
>
> Gavin
>
> _______________________________________________
> alacpp mailing list
> alacpp@xxxxxxxxxxx http://lists.ellipsis.cx/mailman/listinfo/alacpp
>
_______________________________________________
alacpp mailing list
alacpp@xxxxxxxxxxx
http://lists.ellipsis.cx/mailman/listinfo/alacpp