|
Boost Users : |
From: Kevin Heifner (heifner_k_at_[hidden])
Date: 2006-02-22 12:51:07
yinglcs2_at_[hidden] wrote:
> I have a for loop which pass the map.second to a
> function, like this:
> class A;
> typedef map<int, A*> MyMap;
>
> sortY(A& a);
>
> for (MyMap::iterator iter = map.begin(); iter !=
> map.end(); ++iter) {
> A *a = (*iter).second;
>
> sortY(*a);
> }
>
> how can I translate the above for() loop into for_each
> and use boost lambda?
I didn't test the following, but it should work :)
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
using boost::lambda::_1;
using boost::lambda::bind;
std::for_each(map.begin(), map.end(),
bind(&sortY, *bind(&MyMap::value_type::second, _1)));
KevinH
-- Kevin Heifner heifner @ ociweb.com http://heifner.blogspot.com Object Computing, Inc. (OCI) www.ociweb.com
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net