boost::lockfree::queue 的文档提到 push 可以在需要时分配更多空间。然而,我终其一生都无法弄清楚如何实例化这样一个队列,而且我找不到它的例子。 boost 网站上的所有示例都是固定容量的。
这是我正在查看的文档: http://www.boost.org/doc/libs/1_54_0/doc/html/boost/lockfree/queue.html
最佳答案
队列的默认大小是可变的。这由 typename ...Options
模板参数控制。
此外,还有一个错误,即使队列大小可变,队列也需要静态设置的容量。这可以通过使用采用初始容量的构造函数来避免。
可变大小的队列可以实例化为:
boost::lockfree::queue<T> newQueue(0);
// or equivalently:
boost::lockfree::queue<T, boost::lockfree::fixed_sized<false> > newQueue(0);
固定大小的队列必须将 fixed_sized
选项显式设置为 true
或使用 boost::lockfree::capacity
选项提供大小.
请参阅您链接到的文档开头附近的政策
部分。
关于c++ - 如何使 boost::lockfree::queue 动态调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22891888/