问问题
150 次
2 回答
8
唯一的原因stack
是禁止访问被包裹的容器,除非作为堆栈,即仅访问顶部。如果您想要一个可以用作堆栈但不限于仅用作堆栈的容器,那么您可以使用不同的序列容器,例如 raw vector
。
同样,唯一的原因queue
是禁止访问被包装的容器,除非作为队列,即访问前和后。如果您想要一个可以用作队列但不限于仅用作队列的容器,那么您可以使用不同的序列容器,例如 raw vector
。
于 2012-08-11T20:03:19.087 回答
2
队列通常表示先进先出 (FIFO) 缓冲区。您可以访问两端。一端有最新的项目,另一端有最旧的项目。您可能希望从将元素添加到队列的代码中访问最新的项目,并从处理队列中的项目的代码中访问最旧的项目。
堆栈通常表示后进先出 (LIFO) 缓冲区。您只能访问一端,即最近添加到堆栈中的项目。所以只需要一个top(),没有bottom()。
于 2012-08-11T20:05:03.797 回答