小编djo*_*end的帖子

可以使用移动语义更改或改进此C++代码吗?

struct big_struct{
    vector<int> a_vector;
    map<string, int> a_map;
};

big_struct make_data(){
    big_struct return_this;
    // do stuff, build that data, etc
    return return_this;
}
int main(){

    auto data = make_data();
}
Run Code Online (Sandbox Code Playgroud)

我已经看到移动语义应用于构造函数,但在这段代码中,我想知道大结构是否在返回时完全复制.我甚至不确定它与移动语义有关.C++总是复制这种数据,还是优化?这段代码可以改变或改进吗?

返回矢量或地图的函数怎么样?这张地图/矢量被复制了吗?

c++ move compiler-optimization move-semantics

10
推荐指数
1
解决办法
186
查看次数

标签 统计

c++ ×1

compiler-optimization ×1

move ×1

move-semantics ×1