相关疑难解决方法(0)

我应该将哪个STL容器用于FIFO?

哪个STL容器最适合我的需求?我基本上有一个10个元素的宽容器,在这个容器中我不断使用push_back新元素pop_front(大约一百万次).

我目前正在使用a std::deque来执行任务,但是想知道是否std::list会更高效,因为我不需要重新分配自己(或者我可能会误认为std::dequestd::vector?).或者是否有更高效的容器满足我的需求?

PS我不需要随机访问

c++ stl fifo

84
推荐指数
5
解决办法
8万
查看次数

使用什么数据结构

我正在为这种情况寻找合适的数据结构.我有提升可用.

代码最初是在C#中,我在那里使用了一个队列,但我不认为这是一个合适的选择,据我所知,C#的队列没有C++等价物.我正在查看以下属性的频率/重要性:

  • 需要快速迭代
  • 需要能够快速推进结构(即当我从顶部拉出一个元素时,下一个元素应该是结构头)
  • 偶尔会被清除,然后完全重新填充
  • 偶尔会复制
  • 不需要对元素进行排序,因为元素将以正确的顺序添加

元素的数量在创建时将是已知的,并且将是50到200个元素.结构永远不会超过这个,但可能偶尔保持较少

我正在考虑使用std :: list,但是需要清除然后偶尔重新填充,这似乎不是一个好的选择.当我创建一个固定大小的列表,然后清除它,它失去了前缀大小不是吗?是否有一些方法可以始终保持列表大小,以便它不必释放/分配内存?

我知道boost有一个队列数据结构,但它不可迭代,我不确定它是否会遇到同样的问题 std::list

关于如何适应std::list我的问题或更合适的数据结构的一些建议会有所帮助.

c++ boost data-structures

3
推荐指数
1
解决办法
190
查看次数

标签 统计

c++ ×2

boost ×1

data-structures ×1

fifo ×1

stl ×1