【发布时间】:2015-07-08 06:55:59
【问题描述】:
我想执行以下操作,但似乎不可能。我不是 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() 来完成吗?如果是,怎么做?
谢谢!
【问题讨论】:
-
也许你可以使用
std::inserter作为最后一个参数? -
@Morb:谢谢。 insert() 当然是可能的。我想知道是否也可以用算法做同样的事情。
-
@Joachim:谢谢。这是我没有考虑的一种方式。其实我没有具体说明我想做什么。我想让 m2 被 m1 覆盖。这也可能吗?
-
最好在问题本身中澄清这一点。
标签: c++ dictionary stl copy transform