有时候函数需要返回一个vector的对象,直接返回觉得不是很好,就通过引用过来,比如这样
std::vector<int> func(std::vector<int> &v) {
v.push_back(10);
return;
}
后来觉得这样更好,返回右值,性能会提高.
std::vector<int> func2() {
std::vector<int> v;
v.push_back(10);
return move(v);
}
后来在网上看到,说编译器会自动优化,下面这种写法,把左值自动变为右值,不过我没找到设计标准.
std::vector<int> func2() {
std::vector<int> v;
v.push_back(10);
return v;
}
这里例子更好的解释了右值
vector<vector<string>> vv;
vector<string> v = { "123", "456" };
vv.push_back(move(v)); //这行代码之后, v的size为零