Home

boost容器之multi_index

之前介绍过bimap用于解决双向map的需求,类似于关系数据库里对多列建立索引。boost里的multi_index_container则继续扩充了这个特性,支持将多种container的接口合并到一块,想象下将std::vector和std::map合并到一个容器里组成一个新的容器,既支持数据的顺序写入,也支持k-v映射。 考虑实际应用场景,例如LRU cache,需要对数据hash和按照时间排序,实现上经常维护两个容器:hash_table和list,更新时保证两个container的一致性。而使用multi_index_container可以构造出同时具有hash_map和list接口的类,用户不需要关注底层的数据实现和一致性。 实际上,multi_index_contain...

Read more