我有一个维护 boost::flat_map 的 C++ 程序。它以(key,value)的形式接收实时命令。如果 value 为 0,则 flat_map[key] 如果存在则应删除。如果 value 不为零,则如果条目已存在,则 flat_map[key] 应设置为 flat_map 中的 value,如果条目不存在则应将其插入。
但是,命令并不是一一来的。相反,它们是分批出现的,程序只需要在处理完每批命令后对 flat_map 进行排序。在处理一批命令的过程中,它不需要对 flat_map 进行排序。
鉴于这种灵活性,有没有办法通过避免在每次插入/删除时移动许多元素的 flat_map 开销来减少处理时间,并且只在每批结束时产生一次开销?该程序对延迟非常敏感。
感谢您的任何意见!