阅读更多

3顶
0踩

编程语言
谷歌开源团队近日发布了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的副本,并会在使用迭代器时自动复位。

详细信息:C++ containers that save memory and time

项目地址:https://code.google.com/p/cpp-btree/
  • 大小: 25.5 KB
  • 大小: 13.3 KB
  • 大小: 11.7 KB
  • 大小: 15.7 KB
  • 大小: 4.8 KB
  • 大小: 14 KB
  • 大小: 14.7 KB
  • 大小: 20 KB
  • 大小: 32.4 KB
3
0
评论 共 5 条 请登录后发表评论
5 楼 truekbcl 2013-02-02 09:48
truekbcl 写道
C++ B-tree容器也不是没有缺点,与标准STL容器不同的是,修改C++ B-tree容器,会令所有未在该容器中的迭代器失效。
----------------------
小编,你能确定这是google团队说的?

。。。
还真是。
vector的iterator也会失效。
google这个说明。。。蛋痛
4 楼 truekbcl 2013-02-02 09:44
C++ B-tree容器也不是没有缺点,与标准STL容器不同的是,修改C++ B-tree容器,会令所有未在该容器中的迭代器失效。
----------------------
小编,你能确定这是google团队说的?
3 楼 Linux2001 2013-02-01 22:52
这个库对模版的复用用的太复杂了,而且版本控制系统又用的hg,很讨厌啊  
2 楼 hehongwei44 2013-02-01 22:42
太高深了 了解不了
1 楼 wugidugi12 2013-02-01 16:48
外排多路归并的常用数据结构

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 谷歌 B-Tree C++ 模板库

    谷歌开源团队近日发布了C++ B-Tree,这是一个C++模板库,实现了基于B-tree数据结构的有序内存容器。类似于STL的map、set、multimap和multiset模板,C++ B-tree也提供了btree_map、btree_set、btree_multimap和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_...

  • 谷歌发布基于B-Tree的C++模板库

    谷歌发布基于B-Tree的C++模板库 http://www.csdn.net/article/2013-02-04/2814078-C++-Btree 发表于2013-02-04 09:00| 10294次阅读| 来源ITeye| 32 条评论| 作者wangguo Google数据结构c++数据库...

  • 谷歌B-Tree的C++模板库

    C ++ B-树是一种有序的模板库,实现了基于B-树的数据结构在内存中的容器。类似STL地图,设置,multimap中,和multiset的模板,这个库提供btree_map,btree_set,btree_multimap,btree_multiset。 C ++ B-树的容器...

  • cpp-btree:现代 C++ B 树容器

    C++ B-tree 是一个模板库,它基于 B-tree 数据结构实现有序的内存容器。 类似于 STL std::map 、 std::set 、 std::multimap和std::multiset模板,这个库提供了btree::map 、 btree::set 、 btree::multimap和btree...

  • 【算法学习】B-Tree编程实现(C++模板类封装)

    采用C++模板类封装。参考《算法导论(第二版)》第18章 B树。 实现了B树的搜索、插入和删除的重要操作。 欢迎交流和讨论,如有错误,还请指出~(E-Mali:xiajunhust@gmail.com) BTree.h: //B-树...

  • Google C++ sytle ------ c++ 11

    Google C++ Style Guide Table of Contents Background C++ is one of the main development languages used by many of Google's open-source projects. As every C++ programmer knows, the language has many ...

  • 基于c++17的高性能日志库easylog介绍

    easylog,阿里开源的轻量级高性能c++日志库,最低要求编译器支持c++17。属于阿里的雅兰亭库中集成的一个功能,代码量少,使用简单且性能强大。它使用了一些c++17以上的新功能特性如constexpr编译期优化,字符串视图...

  • c++的常用库

    c++的常用库 C++ 资源大全 关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、... Standard Template Library:标准模板库 C POSIX library : POSIX系统的C标准库

  • C++流行的开源框架和库

    awesome-cpp 就是 fffaraz 发起维护的 C++ 资源列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,...

  • C 和 C++ 开源库的清单

    关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz 发起和维护。 内容包括:标准库、Web应用框架、人工智能、...Standard Template Library:标准模板库 C POSIX library : POSIX系统的C标准库规范 ISO C++ Standa

  • c++开源库

    程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习...Standard Template Library:标准模板库 C POSIX library : POSIX系统的C标准库规范 ...

  • 基于LangChain+LLM的本地知识库问答:从企业单文档问答到批量文档问答

    有的模型则会调用一个定位于 “链接各种AI模型、工具”的langchain的bing功能 为了处理企业私有的知识,要么基于开源模型微调,要么更可以基于langchain里集成的向量数据库和LLM搭建本地知识库问答(此处的向量数据库...

  • 【BOOST C++库】BOOST C++库20个分类指南

    我们强调与 C++ 标准库配合良好的库。 Boost 库旨在广泛使用,并可用于广泛的应用程序。 Boost 许可证鼓励所有用户以最少的限制使用 Boost 库。

  • 站在巨人的肩膀上,C++开源库大全

    程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 值得学习的C语言开源项目 1. Webbench Webbench是一个在...

  • C++开源库

    程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 标准库 C++ Standard Library:是一系列类和函数的集合,使用核心...

  • 超级有用的c++库

    标准模板库- 标准模板库 (STL)。C POSIX library - POSIX 系统的 C 标准库规范。ISO C++ 标准委员会- ISO/IEC JTC1/SC22/WG21 - C++ 标准委员会。网站GNU C 库- 本手册的目的是告诉您如何使用 GNU C 库的工具。

  • C++常用库

    关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。原博客地址 ...Standard Template Library:标准模板库 C ...

  • C++学习之路(15)---C++ 资源大全

    C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。...关于 C++ 框架、库和资源的一些汇总列表。 内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器...

  • 发卡系统源码无授权版 带十多套模板

    发卡系统源码无授权版 带十多套模板

Global site tag (gtag.js) - Google Analytics