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

overwriting map with map possible with <algorithm>?

本文关键字:地图 algorithm gt lt 覆盖      更新时间:2023-10-16

我想执行以下操作,但似乎是不可能的。我不是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()));