合并两个std::队列
Merge two std::queue
在stl中是否有连接两个std::queue
对象的函数?
std::queue
适配器不支持迭代,因此您实际上必须滚动自己的方法来完成此操作。但是考虑到您需要这个功能,您可能应该考虑使用不同的容器。如果你需要随机访问,可能是std::deque
。如果您只需要像队列一样的前后访问,请考虑std::list
, splice
可以在常数时间内一起使用。
stl中似乎没有提供任何选项,但我可以想到一些您可以自己编写的其他内容:
-
写你自己的代码读取一个队列到另一个队列,但这是O(n)。
-
使用
std::copy
来操作底层的std::deque
容器,同样是0 (n)。 -
创建您自己的容器,该容器根据
std::queue
实现,但可以维护多个队列来模拟O(1)中的连接。
相关文章:
- 使用 std::forward_list 返回错误的队列实现
- 如何将 STL 队列推送函数绑定到 std::函数?
- C++ std::队列推送弹出两个不同的对象获取第一个对象
- 在堆或堆栈上分配的 std::队列的内存
- 是否使用示波器队列:: swap违反任何规则来清空std ::队列
- 包含std ::队列的类的价值限制
- 为什么STD ::队列使用STD :: Dequeue作为基础默认容器
- 为什么使用Swap()时STD ::队列不会释放内存
- 如何读取STD ::队列与另一个线程共享
- catlarray错误的STD ::队列
- 你能用lambda比较器交换std::队列吗
- std::队列析构函数慢得要命,错误
- std::队列初始化与 NULL
- 释放存储在std::队列中的堆指针
- 如果存在仅推送线程和仅弹出线程,那么C++std::队列安全吗
- 在MSVCC/g++/icc中,std队列/vector的行为不同
- 对std::队列的pop和push操作使用单独的互斥锁,而不是一个互斥锁
- 从std::队列推送结构和弹出时内存泄漏
- std::队列错误?Pop调用了错误的destroy函数
- 合并两个std::队列