R 值参考 push_back 函数

R-value Reference push_back Function

我正在写一个队列class。对于新的 C++11 标准,我有两个版本的 push_back。其中一个版本使用右值引用作为参数。我的版本有效,但我认为它一定缺少一些东西:

 97 template <typename T>
 98 void Queue<T>::push( T && val ) 
 99 {
100     c.push_back( val );
101 }

看来我应该使用std::move,但我不确定如何实现它。上面函数中的c指的是封装在我的Queueclass中的一个deque对象。非常感谢任何帮助理解我应该如何正确构造此函数的帮助!

是的,你在这里需要std::move,但你也可以在这里使用emplace_back

template <typename T>
void Queue<T>::push( T && val ) 
{
     c.emplace_back( std::move(val) );
}