【发布时间】:2014-02-25 14:14:39
【问题描述】:
在许多非官方 C++ 参考网站之一上,列出了 std::queue 的成员函数 front() 和 back()。但是std::stack只有top()功能。
堆栈没有bottom() 函数是有意义的,因为这是堆栈的定义。
我不明白的是,为什么 C++ 标准委员会选择不遵循队列的定义并为队列提供 back() 函数并选择遵循堆栈的定义而不提供 bottom()功能。
【问题讨论】:
-
这听起来可能有点迂腐,但 cplusplus.com 不是 C++ 参考。这是关于 C++ 的一个(=一些)网站。
-
嗯...
stack::bottom与queue::back并不完全相似。我不认为提供back真的是一个有趣的违规行为。你仍然被限制在push_back和pop_front,满足了 FIFO 队列的期望。 -
添加 stack::bottom 仍然满足 LIFO。
-
@dyp 你有什么建议作为替代参考?该标准本身是付费的,不可深度链接。
-
@Adam 您可以使用n3337,这是标准加上纯粹的编辑更改,或最新的 C++1y 草案(例如通过github repository),其中还包含编译器的一些修复将在他们的 C++11 模式下实现(原文如此!)。还有另一个(= 一些)网站 cppreference.com 在 StackOverflow C++ 社区中享有盛誉。