【发布时间】:2011-03-10 06:02:15
【问题描述】:
我正在使用 boost::multi_index 的数据类型,我想根据它的大小进行索引。但是,这种数据类型的 size() 成员函数执行起来很昂贵。 multi_index 是否缓存它从其键提取器中获取的值?
例如,如果我使用成员函数键 (element.size()) 创建了一个带有有序索引的 multi_index 容器,并插入了一个其大小位于容器中间某处的元素,该容器是否会重新-对它访问的所有元素调用 size() 成员函数,同时在找到正确的插入点之前遍历其内部数据结构?
【问题讨论】:
-
您可能想自己缓存它。你需要在你的对象中添加一个
size_t,也许还有一个“脏”位,这样你就知道你是否缓存了它以及缓存是否是最新的。
标签: c++ boost multi-index boost-multi-index