加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 用于基于密钥访问的订购数据的STL容器?

发布时间:2020-12-16 03:36:14 所属栏目:百科 来源:网络整理
导读:假设我有一个Person对象的集合,每个对象都如下所示: class Person { string Name; string UniqueID;} 现在,物体必须存放在一个容器中,这样我就可以订购它,这样我可以给出X项目轻松找到X 1和X-1项目. 然而,我还需要基于UniqueID的快速访问,因为集合将很大,并
假设我有一个Person对象的集合,每个对象都如下所示:
class Person 
{
  string Name;
  string UniqueID;
}

现在,物体必须存放在一个容器中,这样我就可以订购它,这样我可以给出X项目轻松找到X 1和X-1项目.

然而,我还需要基于UniqueID的快速访问,因为集合将很大,并且线性搜索将不会被切割.

我目前的’解决方案’是使用std :: list与std :: map一起使用.该列表包含“Person”(用于有序访问),并且该映射用于将UniqueID映射到列表项的引用.更新’容器’通常包括更新地图和列表.

它的作品,但我觉得应该有一个更聪明的方式来做,也许提高:bimap.建议?

编辑:我对“订购”的要求有些混乱.要解释,对象是从文件顺序流式传输的,容器中项目的“顺序”应与文件顺序相匹配.订单与ID无关.

解决方法

boost:bimap是最明显的选择. bimap基于boost :: multi_index,但bimap具有简化的语法.个人而言,我希望boost :: multi_index可以通过boost :: bimap,因为它将允许在将来轻松地向Person结构添加更多的索引.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读