std :: vector,std :: string;它会移动吗?

时间:2017-06-21 10:08:15

标签: c++11 stdvector

dependencies {
    compile 'com.google.android.gms:play-services:11.0.1'
}

会动吗?或者它会被价值复制吗?

没有别的话要说,但必须满足写更多的要求。因此,我正在为你写下更多的文字,伙计

2 个答案:

答案 0 :(得分:3)

根据C ++ ISO标准,允许编译器复制,移动或在调用者上分配它,并避免复制/移动。

大多数编译器(GCC,Clang,VC ++)很可能会选择第三个选项(在调用者上分配 - 返回值优化)并启用优化。

答案 1 :(得分:-1)

取决于您的C ++版本,但在现代C ++中,承诺返回std:vector是有效的,并且不会导致逐个元素的复制操作。