首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用std::move

使用std::move
EN

Stack Overflow用户
提问于 2011-10-12 07:34:29
回答 2查看 2.1K关注 0票数 11

在使用C++11之前,我使用了交换回技术来避免深度复制开销,例如:

代码语言:javascript
复制
vector<vector<Object> > Objects;

for(/* some range */)
{
    vector<Object> v;
    for(/* some other range */)
    {
        v.push_back(/* some object */);
    }
    Objects.push_back(vector<Object>());
    Objects.back().swap(v);
}

如何使用std::movev移到Objects中以避免深度复制开销,而不是swap

我知道这里有很多变通方法,比如多数组或直接插入到Objects.back()中,但我需要一个std::move用法的示例来理解它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-12 07:38:12

代码语言:javascript
复制
vector<vector<Object> > Objects;

for(/* some range */)
{
    vector<Object> v;
    for(/* some other range */)
    {
        v.push_back(/* some object */);
    }
    Objects.push_back(std::move(v));
}
票数 16
EN

Stack Overflow用户

发布于 2011-10-12 07:38:09

代码语言:javascript
复制
Objects.push_back( std::move( v ) );
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7733741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档