为什么C++已经有队列和堆栈,因为它已经有deque?

Maj*_*jor 1 c++ stl deque data-structures

我想知道为什么C++有队列和堆栈,因为它已经有deque.

似乎堆栈/队列的运行时和使用deque来模拟堆栈/队列是相同的.此外,deque支持修饰符,如擦除,迭代器和随机访问,堆栈或队列都不支持.

那么为什么C++提供了所有这三个,因为deque比其他两个更强大?

谢谢!

Nat*_*ica 7

std::queue并且std::stack实际上不是标准库中的容器.它们是容器适配器,用于在实际容器之上为您提供特定的接口.

你不希望你的堆栈有operator []我们的包装std::deque(默认情况下,你可以使用不同的容器),所以我们不公开堆栈不会有的操作.