有时我会看到这样的函数声明:
void foo(vector<some type>&& inputs);
使用 && 而不是 & 的主要原因是什么?
这是 C++11 中的一个新事物,称为右值引用。
你可以在这里阅读他们的精彩介绍:http: //thbecker.net/articles/rvalue_references/section_01.html
本质上,它说它将是对可以被销毁而不会引起问题的对象的引用,并用于优化某些操作,例如复制构造函数(如果另一个对象可以被销毁,则可以将其更改为交换)。