copy-stdmap-data-to-another-map
question
I have a map that’s defined like this
struct A
{
int A;
int B;
};
typedef map<int,A> Amap;
Then I have Amap1 and I want copy it to Amap2
A a....;
Amap Amap1,Amap2;
Amap1[1]=a1;
Amap1[2]=a2;
Amap1[3]=a3;
Amap2.insert(Amap1.begin(), Amap1.end());
Sometimes this work properly, sometimes this copies only the keys and the value 0. Where is my mistake here?
solution
Copying one map to another can be done with operator = or the copy constructor.
// E.g
map<X, Y> mp1;
// fill mp1 with data
map<X, Y> mp2(mp1); // mp2 is a copy of mp1 (via copy-construction)
map<X, Y> mp3;
mp3 = mp2; // mp3 is also a copy of mp2 (via copy-assignment)