我想知道使用std :: queue与std :: deque是否有任何惩罚。 当玩玩具线程池时,它突然出现在我的脑海中,并且记得安东尼·威廉姆斯的并发书中的deque构建了这样的池的示例,尽管在这种情况下队列使用会更清楚。
快速浏览Visual Studio会显示对底层双端队列的间接调用,例如:
template<class... _Valty>
void emplace(_Valty&&... _Val)
{ // insert element at beginning
c.emplace_back(_STD forward<_Valty>(_Val)...);
}
这个间接调用是否被所有编译器优化了,或者这里有一个小小的惩罚? 我不知道这个容器适配器的性能标准是什么。提到了Deque的复杂性,但队列中没有任何东西 - 当然应该是相对于底层容器的。