将地图复制到另一个地图中

liv*_*495 2 c++

我有这样的地图:

map<prmNode,vector<prmEdge>,prmNodeComparator> nodo2archi;
Run Code Online (Sandbox Code Playgroud)

我需要有一张相同的地图副本.快速的方法是如何做到这一点的?我试过这个:

map<prmNode,vector<prmEdge>,prmNodeComparator> copiamap( nodo2archi );
Run Code Online (Sandbox Code Playgroud)

但它不起作用.copiamap是空的.非常感谢你

小智 7

使用地图的复制构造函数:

map<prmNode,vector<prmEdge> > nodo2archi;
map<prmNode,vector<prmEdge> > acopy( nodo2archi ) ;
Run Code Online (Sandbox Code Playgroud)

此代码复制地图,为每个代码打印相同的大小(1).

#include <map>
#include <iostream>
using namespace std;

typedef  map <int, int> MapType;

int main() {
    MapType m1;
    m1.insert( make_pair( 1, 1 ) );
    cout << m1.size() << endl;
    MapType m2( m1 );
    cout << m2.size() << endl;
}
Run Code Online (Sandbox Code Playgroud)

如果您自己的代码确实没有复制,那么我怀疑复制构造函数中的错误或包含类型的比较函数会以某种方式搞砸内存.