2

我正在使用用queue<vector<int> >C++ 编写的计算密集型搜索算法。我想用包含固定大小数组的队列或类似的 FIFO 结构替换此数据结构。我怎样才能在 C++ 中做到这一点?

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

4

1 回答 1

3

您可以使用 astd::queue<std::array<int, N> >来具体提供您所要求的内容。一个队列,其中每个元素都是一个固定大小的数组。

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

于 2013-03-01T21:08:35.047 回答