在std::vector push_back()和std::map operator[]中使用&&作为参数的含义

5

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

void push_back(_Ty&& _Val)
{
    // some code here       
}

下面是 std::map operator[] 的实现:


mapped_type& operator[](key_type&& _Keyval)
{
    // some code here   
}

为什么 _Val 和 _Keyval 是通过引用传递的?引用传递的参数如何工作?与引用传递相比,这种方法有什么优点?

P.S. 这不是逻辑上的“AND”,我清楚这一点。


阅读手册:http://en.cppreference.com/w/cpp/container/vector/push_back - billz
我认为这个引用可能是存在的正确选择,尽管它是一个重复。 - Netherwire
1个回答

2

这是一个 C++11 的特性 - 右值引用 ... 以下是更多信息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接