用于搜索和排序的最佳容器

ste*_*225 2 c++ stl

我有一个用于存储日志数据的纯虚拟类.这个类有两个信息:( std::string id唯一)和int64_t time(允许重复)getId()getTime()函数.创建日志条目后,它们将进入容器,在应用程序终止时,日志消息将写入文件.

随着程序的继续,我可能想要更新日志条目,因此我需要搜索id以找到要更新的正确条目.关机时,我希望按time顺序记录结果.

我想存储一个对象std::map,其中id作为重点,对象为方便检索和更新的价值.在关闭时,在写入之前创建一个std::multimapstd::vector进行排序.这是最好的方法吗?或者是否有更好的对象可以支持这两种需求?

And*_*nck 5

由于您只需要按时间排序一次,当程序退出时,我认为您提出的解决方案是好的.

如果您需要多次按时间和ID排序的条目boost::multi_index将是一个很好的候选人.