Overwrite map with map using <algorithm>?

I would like to do the following, but it doesn't seem to be possible. I am not an STL expert.

typedef std::map<int,int> CMap;

CMap m1;
m1[0] = 10;
m1[1] = 11;
m1[2] = 12;

CMap m2;
m2[20] = 30;
m2[21] = 31;
m2[22] = 32;

std::copy( m1.begin(), m1.end(), m2.begin() );

      

Is there a way to do this using an algorithm (C ++ 98)? Can this be done with transform () or replace ()? If so, how?

Thank!

+3


source to share


1 answer


You can do it:

m2 = m1;

      

Or even this if you like:



m2.swap(m1);

      

And this too:

std::copy(m1.begin(), m1.end(), std::inserter(m2, m2.end()));

      

+4


source







All Articles