有没有快速的方法来替换两个地图内容?

Yot*_*tam 1 c++ swap

在我的代码中,我有一个地图,其中包含大量数据(~100MB)我需要将所有数据从一个地图复制到另一个地图.目前我用交换做这个,但根据我的理解,交换是一种花哨的方式来复制.有没有办法简单地转移两张地图使用的内存?我认为我可以用指针做到这一点,但我希望有一个更优雅的方式.

CB *_*ley 5

23.2.1 ISO/IEC 14882:2011的[container.requirements.general]包含一般容器要求的列表.对于所有标准容器,表达式a.swap(b)swap(a, b)必须交换的内容ab和除了array两者之外的所有标准容器必须具有恒定的时间.这实际上意味着交换地图不能涉及复制所有地图元素.