Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1435|回复: 0
打印 上一主题 下一主题

cpp-btree

[复制链接]

1228

主题

1996

帖子

7572

积分

认证用户组

Rank: 5Rank: 5

积分
7572
跳转到指定楼层
楼主
发表于 2020-1-4 11:47:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://code.google.com/p/cpp-btree/
谷歌发布基于 B-Tree 的 C++ 模板库
谷歌开源团队近日发布了C++ B-Tree,这是一个C++模板库,实现了基于B-tree数据结构的有序内存容器。类似于STL的map、set、multimap和multiset模板,C++ B-tree也提供了btree_map、btree_set、btree_multimap和btree_multiset等模板。

B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。这个数据结构一般用于数据库的索引,综合效率较高。

由于B-trees可以保持磁盘寻道到最低限度,通常作为二次存储数据结构。对于内存中数据结构来说,将缓存未命中率保持在最低限度,可以产生更高的性能。C++ B-tree在搜索树时,通过在每个节点执行多个键比较,更好地利用了缓存。缓存行为的改善,可以使访问大型容器时的性能有显著提升。

谷歌开源团队同时也表示,C++ B-tree容器也不是没有缺点,与标准STL容器不同的是,修改C++ B-tree容器,会令所有未在该容器中的迭代器失效。出于这个原因,谷歌在该库中还增加了一个“安全”容器版本,安全容器中的迭代器会保存当前key的副本,并会在使用迭代器时自动复位。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-4-23 15:32 , Processed in 0.054330 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表