【发布时间】:2013-02-11 16:29:32
【问题描述】:
这样做的问题是巨大的物体会被复制到地图中
Huge huge1(some,args);
Huge huge2(some,args);
std::map<int,Huge> map1;
std::map<Huge,int> map2;
map1.insert({0,huge1});
map2.insert({huge2,0});
我如何保证搬家?这会起作用还是有更多作用?
map1.insert({0,std::move(huge1)});
map2.insert({std::move(huge2),0});
【问题讨论】:
-
我几天前就问过这个问题:stackoverflow.com/questions/14581414/…
-
不完全一样,@Chowlett。
-
@Yakk - ...因为键类型也可用于移动,我需要确保它被复制到哪里?还是我错过了什么?
-
@Chowlett 是的——你想要部分移动,而 OP 只想移动。诚然,您的问题回答了 OP 的问题。 :)