<algorithm> 可以用地图覆盖地图吗?

overwriting map with map possible with <algorithm>?

我想执行以下操作,但似乎不可能。我不是STL专家。

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() );

有没有办法使用算法 (C++98) 来做到这一点?可以用 transform() 或 replace() 来完成吗?如果是,如何?

谢谢!

你可以这样做:

m2 = m1;

如果你愿意,甚至可以这样:

m2.swap(m1);

还有这个:

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