passing a transform as a function parameter?

S

Steven T. Hatton

If I do:

typedef vector<size_t> v_T;

pair<v_T, v_T> b_T;

b_T bounds(v_T(n), v_T(n)); // if that doesn't work
// std::make_pair(v_T(n), v_T(n));
b_T diff_v(n);
void populate_bounds(&bounds); // all bounds.first <= bounds.second

If I then:

transform(bounds.first.begin(),
bounds.first.end(),
bounds.second.begin(),
diff_v.begin(),
minus<size_t>());

diff_t should get filled with

diff_v == bounds.second - bounds.first

I can then pass diff_v to a function which takes a const &v_T argument. Is
there a way to iliminate diff_v, and simply feed the transform to the
function taking &v_T?
 
V

Victor Bazarov

Steven said:
If I do:

typedef vector<size_t> v_T;

pair<v_T, v_T> b_T;

Did you mean

typedef std::pair<v_T,v_T> b_T;

?
b_T bounds(v_T(n), v_T(n)); // if that doesn't work
// std::make_pair(v_T(n), v_T(n));
b_T diff_v(n);

I don't think you can initialise a pair this way. Did you mean

v_T diff_v(n);

??
void populate_bounds(&bounds); // all bounds.first <= bounds.second

If I then:

transform(bounds.first.begin(),
bounds.first.end(),
bounds.second.begin(),
diff_v.begin(),
minus<size_t>());

diff_t should get filled with

diff_v == bounds.second - bounds.first

I can then pass diff_v to a function which takes a const &v_T argument. Is
there a way to iliminate diff_v, and simply feed the transform to the
function taking &v_T?


Since you didn't clarify how v_T contains the bounds, I would have to dive
into a pool of assumptions, and it's usually wrong. Perhaps you could be
more specific. Otherwise, the generic answer is, "yes, you can do that,
you only need to correctly define the iterator and the functor".

Victor
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,767
Messages
2,569,570
Members
45,045
Latest member
DRCM

Latest Threads

Top