社区
数据结构与算法
帖子详情
stl::map的实现机制?
zgamer
2003-10-03 12:00:56
stl::map内部应该由有序平衡二叉树实现,只知道查找的时间复杂度是logN,不知插入、删除的时间复杂度怎样?
学校里学的东西全还给老师了,网上找了半天也没找到答案,望各位帮忙
...全文
308
1
打赏
收藏
stl::map的实现机制?
stl::map内部应该由有序平衡二叉树实现,只知道查找的时间复杂度是logN,不知插入、删除的时间复杂度怎样? 学校里学的东西全还给老师了,网上找了半天也没找到答案,望各位帮忙
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
短歌如风
2003-10-03
打赏
举报
回复
增、删、查都是O(log(N))。
不过一般现在流行的STL中都不使用平衡二叉树,而是使用红黑树,是一种不完全平衡的二分查找树。增删查也都是O(log(N)),不过增删操作比平衡二叉树要快得多,但查找稍慢(因为不完全平衡)。
关于红黑树的原理,我在这个贴子中谈到了一些:http://expert.csdn.net/Expert/TopicView1.asp?id=2317254
STL
.zip_
Map
排序_
STL
_Table_
stl
map
实现
源码之前了无秘密,你将看到vector的
实现
、list的
实现
、heap的
实现
、deque的
实现
、Red Black tree的
实现
、hash table的
实现
、set/
map
的
实现
;你将看到各种算法(排序、查找、排列组合、数据移动与复制技术)的
实现
;你甚至能够看到底层的memory pook和高阶抽象的traits
机制
的
实现
。
AVL_Tree
实现
STL
中的
map
, set, multi
map
和multiset
用AVL-tree数据结构作为底层
机制
,以
STL
底层空间配置器和iterator_traits编程技法实作出一个独立的关联式容器(
map
, set, multi
map
, multiset),并对外提供接口
实现
和
STL
完全兼容的容器。
STL
源码剖析(侯捷先生译著)
内容简介回到顶部↑这本书不适合C++ 初学者,不适合 Genericity(泛型技术)初学者,或
STL
初学者。这本书也不适合带领你学习面向对象(Object Oriented)技术 — 是的,
STL
与面向对象没有太多关连。本书前言清楚说明了书籍的定位和合适的读者,以及各类基础读物。如果你的Generic Programming/
STL
实力足以阅读本书所呈现的源码,那么,恭喜,你踏上了基度山岛,这儿有一座大宝库等着你。源码之前了无秘密,你将看到vector的
实现
、list的
实现
、heap的
实现
、deque的
实现
、RB-tree的
实现
、hash-table的
实现
、set/
map
的
实现
;你将看到各种算法(排序、搜寻、排列组合、数据移动与复制…)的
实现
;你甚至将看到底层的memory pool 和高阶抽象的traits
机制
的
实现
。那些数据结构、那些算法、那些重要观念、那些编程实务中最重要最根本的珍宝,那些蜇伏已久彷佛已经还给老师的记忆,将重新在你的脑中闪闪发光。 目录回到顶部↑庖丁解牛(侯捷自序) i 目录 v 前言 xvii 本书定位 xvii 合适的读者 xviii 最佳阅读方式 xviii 我所选择的剖析对象 xix 各章主题 xx 编译工具 xx 中英术语的运用风格 xxi 英文术语采用原则 xxii 版面字形风格 xxiii 源码形式与下载 xxiv 在线服务 xxvi 推荐读物 xxvi 第1章
STL
概论与版本简介001 1.1
STL
概论 001 1.1.1
STL
的历史 003 1.1.2
STL
与C++ 标准程序库 003 . 1.2
STL
六大组件 - 功能与运用 004 1.3 GNU源码开放精神 007 1.4 HP
STL
实现
版本 009 1.5 P.J. Plauger
STL
实现
版本 010 1.6 Rouge Wave
STL
实现
版本 011 1.7
STL
port
实现
版本 012 1.8 SGI
STL
实现
版本 总览 013 1.8.1 GNU C++ header 文件分布 014 1.8.2 SGI
STL
文件分布与简介 016
STL
标准头文件(无扩展名) 017 C++ 标准规格定案前,HP规范的
STL
头文件(扩展名 .h) 017 SGI
STL
内部文件(SGI
STL
真正
实现
于此) 018 1.8.3 SGI
STL
的组态设定(configuration) 019 1.9可能令你困惑的C++ 语法 026 1.9.1
stl
_config.h 中的各种组态 027 组态3:static template member 027 组态5:class template partial specialization 028 组态6:function template partial order 028 组态7:explicit function template arguments 029 组态8:member templates 029 组态10:default template argument depend on previous template parameters 030 组态11:non-type template parameters 031 组态:bound friend template function 032 组态:class template explicit specialization 034 1.9.2 临时对象的产生与运用 036 1.9.3 静态常数整数成员在class 内部直接初始化 037 in-class static const integral data member initialization 1.9.4 increment/decrement/dereference 运算子 037 1.9.5 "前闭后开"区间表示法 [ ) 039 1.9.6 function call运算子(operator()) 040 第2章 空间配置器(allocator) 043 2.1 空间配置器的标准接口 043 2.1.1 设计一个简单的空间配置器,JJ::allocator 044 2.2 具备次配置力(sub-allocation)的SGI 空间配置器 047 2.2.1 SGI 标准的空间配置器,std::allocator 047 2.2.2 SGI 特殊的空间配置器,std::alloc 049 2.2.3 构造和析构基本工具:construct() 和 destroy() 051 2.2.4 空间的配置与释
8-12腾讯二面答案.docx
8-12腾讯面试 (二面)一小时 上来直接问基础知识 后面才问项目 1.虚函数,多态
实现
,纯虚函数和虚函数区别,析构函数可以是虚函数吗,虚继承和虚基类。 2.
STL
:vector中reserve 和resize 区别 3.
map
和unordered_
map
区别 4.哈希表解决冲突的办法 5.多路io复用的
机制
6.select和epoll的区别 7.epoll
实现
原理和
机制
8.最用心的项目是哪个,我的是第一个,问:完成端口的原理和通信
机制
。 编程题:写一个快排。
STL
工具库使用解析系列之一
STL
::
map
STL
是C++提供标准模块库的缩写,其中涉及多诸多常用的数据结构和算法,本文便是介绍
map
结构,一种和hash-table同样使用键值对的数据结构,但和哈希表常用数组
实现
不同,
STL
::
map
内核数据结构是红黑树,故而相比于hash-table的搜索速度是O(1), 而
STL
::
map
搜索时间复杂度是O(LogN)。但考虑到空间复杂度和动态扩展性能,以及要设计表现优异的hash函数的难度,故而对于存
数据结构与算法
33,010
社区成员
35,327
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章