whi*_*kar 5 c++ queue stack std
在许多非官方的C++参考网站之一,列出了成员函数front()和back()for std::queue.但是,std::stack只有top()功能.
堆栈没有bottom()函数是有意义的,因为这是堆栈的定义.
我没有得到的是为什么C++标准委员会选择不遵循队列的定义并为队列提供back()功能,并选择遵循堆栈的定义而不提供bottom()功能.
可能还有其他原因back(),但是你需要它来为队列,因为C++ 03中的成语便宜地将一个"空"对象复制到一个容器中,然后swap使用一个"完整"对象来ping该新元素复制费用昂贵.由于移动语义,这个原因在C++ 11中或多或少已经过时,但当然back()仍需要兼容性.
您不需要bottom()为此(或任何其他)原因堆栈.