合并两个std :: queue

时间:2011-05-02 20:40:03

标签: c++ stl

stl中是否有连接两个std::queue对象的函数?

2 个答案:

答案 0 :(得分:5)

std::queue适配器不支持迭代,因此您实际上必须使用自己的方法来执行此操作。但鉴于您需要此功能,您应该考虑使用不同的容器。如果您需要随机访问,可能std::deque。如果您只需要像队列一样进行前/后访问,请考虑std::listsplice可以在一定时间内{{1}} d。

答案 1 :(得分:0)

stl似乎没有提供任何选项,但我可以想到你自己可以写的其他一些东西:

  1. 编写自己的代码,将一个队列读入另一个队列,但这是O(n)。

  2. 使用std::copy操纵基础std::deque容器,再次O(n)。

  3. 创建您自己的容器,该容器以std::queue的形式实现,但可以维护多个队列以模拟O(1)中的连接。