在 std::vector push_back() 和 std::map operator[] 中通过 && 取参数

Net*_*ire 5 c++ stl reference vector map

我在 std::vector::push_back() 实现中发现了这个:

void push_back(_Ty&& _Val)
{
    // some code here       
}
Run Code Online (Sandbox Code Playgroud)

这在 std::map operator[] 实现中:

mapped_type& operator[](key_type&& _Keyval)
{
    // some code here   
}
Run Code Online (Sandbox Code Playgroud)

为什么 _Val 和 _Keyval 是逐个引用的?逐个引用的论证是如何工作的?与参考文献相比,这种方法有什么好处?

PS 这不是逻辑“与”,我清楚地理解这一点。

Tom*_*Tom 2

这是 C++11 功能 - 右值引用...这里有更多信息