Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用用queue<vector<int> >C++ 编写的计算密集型搜索算法。我想用包含固定大小数组的队列或类似的 FIFO 结构替换此数据结构。我怎样才能在 C++ 中做到这一点?
queue<vector<int> >
这种替换的动机是减少运行时间。在进行分析时,我注意到在创建向量和向向量中添加东西上花费了相当多的时间。我已经用固定大小的数组替换了一些关键向量,并测量了 20-50% 的运行时间减少。因此,我想替换上面 FIFO 数据结构中的向量。请注意,所有有问题的代码都是最内层循环的一部分,因此运行时的非平凡减少。
您可以使用 astd::queue<std::array<int, N> >来具体提供您所要求的内容。一个队列,其中每个元素都是一个固定大小的数组。
std::queue<std::array<int, N> >
或者,您可以将实际数据存储在队列外部的缓冲区中,并仅存储指向缓冲区的指针/迭代器。