用<algorithm>覆盖地图可能?

时间:2015-04-29 06:41:18

标签: c++ dictionary stl copy transform

我想做以下但似乎不可能。我不是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()来完成吗?如果是,怎么样?

谢谢!

1 个答案:

答案 0 :(得分:4)

你可以这样做:

m2 = m1;

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

m2.swap(m1);

也有这个:

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