【问题标题】:Move a range of elements between containers?在容器之间移动一系列元素?
【发布时间】:2011-05-07 13:12:51
【问题描述】:

我一直在查看 C++ 文档中的一个函数,该函数使用移动语义将一系列元素从一个容器移动到另一个容器。但是,我还没有找到这样的功能。我错过了什么?

如果不复制和使用显式循环,我将如何执行以下操作?

// Move 10 elements from beginning of source to end of dest
dest.end() <- move(source.begin(), source.begin() + 10) 

【问题讨论】:

    标签: c++ algorithm c++11 move move-semantics


    【解决方案1】:

    我认为你在&lt;algorithm&gt; 中寻找std::move

    std::move(source.begin(), source.begin() + 10,
                std::insert_iterator(dest, dest.end()));
    

    就像std::copy,除了它是移动分配而不是复制分配。

    【讨论】:

    • 在哪里可以找到该功能的参考文档?我一直在谷歌上搜索并查看 C++0x 最终草案……似乎找不到它。
    • @ronag:我在 n3126 中查看了 §25.3.2。
    • 只是在 MSVS-2010 中添加, 不再自动包含
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多