2013-08-22 38 views
2

我开始与Boost合作,并且正在浏览它拥有的几个库。为什么没有boost :: container :: queue?

我注意到boost :: container定义了几乎所有的标准容器,但不是queue

我没有找到任何提及;所以我想知道为什么只有deque。我想测试STL容器替换升压的,我被告知这将是可能的...

在此先感谢有关此主题的任何解释。

+1

很多推动东西去标准库,如果他们在那里使用std :: whatever(似乎:在队列std更快) –

回答

5

std::queue不是一个容器,它是一个包装。它消耗一个容器并提供一个非容器(简化)的接口。

std::queue<T>的提升版本(实际上意味着std::queue<T, std::deque<T> >,通过默认模板参数)是std::queue<T, boost::container::deque<T> >

+0

谢谢你这个明确的答案。 – Bentoy13

+1

仍然:没有提升队列,但暗示适配器是好的。但是,为什么boost没有那个适配器? –

+0

@Dieter:当规范要求适配器的特定实现时,不能提供更好/更好的适配器实现。正如我所展示的,这些改进来自使用不同的底层容器。你怎么说'std ::队列>'是不是Boost队列? –

相关问题