c++ - Copying a vector of pointers -


i have std::vector<a*> need deep copy vector using a::clone().

instead of using handwritten loops, wondering whether use for_each or standard library algorithm this.

the appropriate algorithm std::transform , can turn member function invocation unary functor std::mem_fun

example:

#include <vector> #include <functional> #include <algorithm> #include <iterator>  class x { public:     x* clone(); };  int main() {     std::vector<x*> vec1, vec2;     std::transform(vec1.begin(), vec1.end(), std::back_inserter(vec2), std::mem_fun(&x::clone)); } 

if target vector same size input range, can pass vec2.begin() third argument. use back_inserter if target empty (or want append it).


Comments

Popular posts from this blog

linux - Using a Cron Job to check if my mod_wsgi / apache server is running and restart -

actionscript 3 - TweenLite does not work with object -

jQuery Ajax Render Fragments OR Whole Page -