boost::circular_buffer 不能提供固定长度的缓冲区,例如大小为 5。
想象我有带有时间戳的实时数据流。我想在最后 5 分钟内保留所有元素的缓冲区。
天真地,我可以构建一个 std::list 的包装器,每次有一个新的数据点 D 进来,我 push_back(D),然后对 pop_front() 超过 5 分钟的所有数据点做一个 while 循环。
这种设计的问题是,我必须为每个点构造一个新实例,这似乎是在浪费时间(这是一个使用非常频繁的对象)
这里有人有更优雅的解决方案吗?
谢谢!