包含C ++中固定大小数组的队列

时间:2013-03-01 21:06:05

标签: c++ arrays vector queue

我在用C ++编写的计算密集型搜索算法中使用queue<vector<int> >。我想用包含固定大小数组的队列或类似FIFO结构替换此数据结构。 如何在C ++中执行此操作?

这种替代的动机是减少运行时间。在分析时,我注意到在向量创建和添加内容上花费了相当多的时间。我已经用固定大小的数组替换了一些关键向量,并测量了20-50%的运行时间减少。因此,我想替换上面的FIFO数据结构中的向量。请注意,所讨论的所有代码都是最内部循环的一部分,因此在运行时会有非平凡的减少。

1 个答案:

答案 0 :(得分:3)

您可以使用std::queue<std::array<int, N> >专门为您提供所要求的内容。每个元素都是固定大小数组的队列。

或者,您可以将实际数据存储在队列外的缓冲区中,并且只存储指向缓冲区的指针/迭代器。