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) );
}
我正在写一个队列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) );
}