相关疑难解决方法(0)

如何使用std :: copy将一个地图复制到另一个地图?

我想将一个std :: map的内容复制到另一个.我可以用std::copy它吗?显然,以下代码不起作用:

int main() {
  typedef std::map<int,double> Map;
  Map m1;
  m1[3] = 0.3;
  m1[5] = 0.5;
  Map m2;
  m2[1] = 0.1;
  std::copy(m1.begin(), m1.end(), m2.begin());
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

这不会因为工作copy会叫operator*m2.begin()为"解引用",并分配一个值(所有值的类型的std::pair<const int, double>).然后它将调用operator++移动到下一个空间m2.这两个操作都因为constin const int而无法工作,并且没有为任何新元素保留空间.

有没有办法让它适用std::copy

谢谢!

c++ iterator stl copy map

19
推荐指数
2
解决办法
4万
查看次数

标签 统计

c++ ×1

copy ×1

iterator ×1

map ×1

stl ×1