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

标签 c++ arrays vector queue

我正在使用 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/

相关文章:

c++ - 什么是 PVOID 数据类型?

c++ - 在 C++ 中转义外部代码块

c++ - 如何用 cvmGet 替换对 cvGetReal2D 的调用?

JavaScript - 使用本地存储保存/加载数组

javascript - 在 onclick 函数之后使用循环从数组调用字符串 [javascript]

arrays - 计算向量中小于另一个向量中每个元素的值

c++ - 如何获得 high_resolution_clock 的精度?

java - 元胞数组方法返回

c++ - 在网格中的任何位置分布多个零

c++ - 为 vector<string> 预留更大容量后发生段错误