我正在使用 queue<vector<int> >
用 C++ 编写的计算密集型搜索算法。我想用队列或包含固定大小数组的类似 FIFO 结构替换此数据结构。 如何在 C++ 中执行此操作?
这种替换的动机是减少运行时间。在进行分析时,我注意到在创建 vector 并将其添加到 vector 上花费了相当多的时间。我用固定大小的数组替换了一些关键 vector ,并测量到运行时间减少了 20-50%。因此我想替换上面 FIFO 数据结构中的 vector 。请注意,所有相关代码都是最内层循环的一部分,因此运行时间会显着减少。
最佳答案
您可以使用std::queue<std::array<int, N> >
专门为您提供您所要求的内容。每个元素都是固定大小数组的队列。
或者,您可以将实际数据存储在队列外部的缓冲区中,并仅存储指向缓冲区的指针/迭代器。
关于c++ - C++ 中包含固定大小数组的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15166879/