【发布时间】:2021-08-14 04:29:23
【问题描述】:
众所周知,STL 通常提供两种插入元素的函数:insert/push 和 emplace。
假设我想将一个容器中的所有元素放置到另一个容器中。
for (auto &&element : myMap)
{
anotherMap.emplace(element); // vs anotherMap.empalce(std::move(element));
}
在这种情况下,如果我想调用emplace,而不是插入/推送,我是否还必须在这里调用std::move?
【问题讨论】:
-
对于这个简单的例子,你也可以使用
move(begin(myMap), end(mayMap), inserter(anotherMap, end(anotherMap)))(在适当的地方插入std::)。