将std :: map数据复制到另一个地图 [英] Copy std::map data to another map

查看:4655
本文介绍了将std :: map数据复制到另一个地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个像这样定义的地图

  struct A 
{
int A;
int B;
};
typedef map< int,A>一张地图;

然后我有 Amap1 它到 Amap2

  A a .... 
Amap Amap1,Amap2;
Amap1 [1] = a1;
Amap1 [2] = a2;
Amap1 [3] = a3;
Amap2.insert(Amap1.begin(),Amap1.end());

有时这个工作正常,有时这只会复制键和值0.在这里我的错误?

解决方案

首先, std :: map stl :: map :)



第二次将一张地图复制到另一张地图可以使用operator =

 地图< X,Y> mp1; 
//用数据填充mp1
map< X,Y> mp2(mp1); // mp2是mp1的副本(通过拷贝构造)
map< X,Y> mp3;
mp3 = mp2; // mp3也是mp2的副本(通过复制赋值)


I have a map that's defined like this

 struct A
 {
  int A;
  int B;
 };
 typedef map<int,A> Amap;

Then I have Amap1 and I want copy it to Amap2

 A a....;
 Amap Amap1,Amap2;
 Amap1[1]=a1;
 Amap1[2]=a2;
 Amap1[3]=a3;
 Amap2.insert(Amap1.begin(), Amap1.end());

Sometimes this work properly, sometimes this copies only the keys and the value 0. Where is my mistake here?

解决方案

First of all, it's std::map, not stl::map :)

And second copying one map to another can be done with operator = or the copy constructor.

E.g

map<X, Y> mp1; 
//fill mp1 with data
map<X, Y> mp2(mp1); //mp2 is a copy of mp1 (via copy-construction)
map<X, Y> mp3;
mp3 = mp2; // mp3 is also a copy of mp2 (via copy-assignment)

这篇关于将std :: map数据复制到另一个地图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆