名称已经说明了一切,但是为了解释清楚,我有一份带有时间戳的向量列表。它们大部分是按顺序排序的,但会有一些无序值。我想要按顺序输出它们,但是向量将以流的方式出现,我不希望有太大的缓冲区,因为我希望及时输出结果。
所以我想要保持一个“前瞻”列表,其中包含N个向量。当我读入新的向量时,我想将其插入到列表中,然后从列表顶部弹出最旧的向量以输出,以使列表保持恒定的N个向量长。
当我插入列表时,我希望向量被排序并在列表中正确的位置添加,因为我认为这是最有效的方法。
我需要很好的效率,但不希望花费太长时间来实施和测试。因此,我对易于解决方案(例如,如果存在现有的C ++结构,则进行重用)以及更难实现但可以提供显着速度提升的解决方案感兴趣。我更喜欢使用标准C ++,但是如果有一个boost或类似的库可以完全满足我的需求,我会很乐意听取它的建议。
谢谢。
编辑:感谢所有的建议。然而,我忽略了时间戳不是唯一的事实。时间戳只有秒精度,因此很可能会得到多个具有相同时间戳的向量。在这种情况下,我更希望保留它们的顺序,但这并非必要。
所以我想要保持一个“前瞻”列表,其中包含N个向量。当我读入新的向量时,我想将其插入到列表中,然后从列表顶部弹出最旧的向量以输出,以使列表保持恒定的N个向量长。
当我插入列表时,我希望向量被排序并在列表中正确的位置添加,因为我认为这是最有效的方法。
我需要很好的效率,但不希望花费太长时间来实施和测试。因此,我对易于解决方案(例如,如果存在现有的C ++结构,则进行重用)以及更难实现但可以提供显着速度提升的解决方案感兴趣。我更喜欢使用标准C ++,但是如果有一个boost或类似的库可以完全满足我的需求,我会很乐意听取它的建议。
谢谢。
编辑:感谢所有的建议。然而,我忽略了时间戳不是唯一的事实。时间戳只有秒精度,因此很可能会得到多个具有相同时间戳的向量。在这种情况下,我更希望保留它们的顺序,但这并非必要。