![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL源码解析 -- 总结
陈同学别睡啦
这个作者很懒,什么都没留下…
展开
-
红黑树,STL容器 rb-tree,set/multiset,map/multimap
红黑树 与 set, map红黑树容器 rb_tree容器 set / multiset容器 map / multimap声明:本文中所有图件都来自B站侯捷老师授课视频红黑树容器 rb_tree容器 set / multiset容器 map / multimap原创 2020-08-24 13:45:38 · 121 阅读 · 0 评论 -
deque, queue 和 stack 深度探索
深度探索 deque, queue, stackdequequeuestack声明:本文中所有图件都来自B站侯捷老师授课视频dequedeque 的内存空间既可以向前扩张,又可以向后扩张。它的实现办法核心思想是,有一个内存控制中心(如图 1 中的 map),这个控制中心存储了一些内存地址,每个地址指向一个 buffer(连续空间),暂时视为一个 buffer 可以容纳 8 个元素(如图1,其实可以容纳的元素数量为 512 / 元素大小 )。只要在迭代器上做手脚,使得从 buffer 的端点可以平滑跨原创 2020-08-23 22:13:45 · 118 阅读 · 0 评论 -
array 与 forward_list 深度探索
这里写目录标题arrayforward_listarrayforward_list原创 2020-08-19 13:07:56 · 150 阅读 · 0 评论 -
list 深度探索
声明:本文中所有图件都来自B站侯捷老师授课视频list 底层实现原理list 的迭代器原创 2020-08-19 12:59:33 · 121 阅读 · 0 评论 -
vector深度探索
声明:本文中所有图件都来自B站侯捷老师授课视频vecctor 底层实现原理图1. GNU2.9 实现的容器vectorvector 的内存是动态增长的,vector 最重要的三个成员变量为 三个迭代器: start, finish, end_of_storage 。start 指向vector第一个元素, finish 指向最后一个元素的下一个地址,end_of_storage指向 vector 内存空间最后一个地址的下一个地址。vector对象 的大小 就是 这三个指针(vector的迭代器就是原创 2020-08-18 22:46:25 · 367 阅读 · 0 评论 -
迭代器的设计原则
迭代器 iterator 需要遵循的原则图1. iterator 需遵循的原则图2. iterator 必须提供的5种associated types注:上图来自侯捷老师授课视频迭代器是算法与容器的桥梁,算法在对容器进行操作时,先要提出一些问题,得到回答之后才能完成任务,由迭代器来回答这些问题。算法提出问题:1. 迭代器类型, 2. differenc_type,两个迭代器之间的距离 ;3.容器元素类型;(4. reference,5. pointer 这两点没有被问过)。以上所述迭代.原创 2020-08-18 12:19:58 · 227 阅读 · 0 评论 -
操作符重载 与 模板(泛化,全特化,偏特化)
操作符重载 与 模板操作符重载模板操作符重载参考链接:https://zh.cppreference.com/w/cpp/language/operators在 C++ STL 中,广泛使用了操作符重载和模板。实际上 C++ 使用者在使用容器时,对不同容器的迭代器使用的操作符(*, ->, ++, --)都可能是不同的实现逻辑。操作符重载使得使用者不需要知道底层具体的代码实现过程,降低编程的复杂度。限制(1)不能重载运算符 ::(作用域解析)、.(成员访问)、.*(通过成员指针的成员原创 2020-08-14 13:19:04 · 322 阅读 · 0 评论 -
C++ 常见容器深度探索 <持续更新>
目录:C++ 常见容器深度探索顺序容器arrayvectorstringdequequeuestacklistforward_list顺序容器通用函数关联容器map / multimap / unordered_mapset / multiset / unordered_set关联容器通用函数顺序容器arrayvectorstringdequequeuestacklistforward_list顺序容器通用函数关联容器map / multimap / unordered_mapse原创 2020-08-13 13:24:47 · 67 阅读 · 0 评论 -
C++ 常见顺序容器基础用法总结 <持续更新>
目录:C++ 常见容器基础用法顺序容器arrayvectorstringdequequeuestacklistforward_list关联容器mapset顺序容器arrayvectorstringdequequeuestacklistforward_list关联容器mapset原创 2020-08-13 12:56:17 · 129 阅读 · 0 评论 -
STL源码解析:STL 与 泛型编程
std与stl:C++ Standard Library 标准库,对于不同的编译器,同版本的标准库几乎相同;C++ Standard Template Library 标准模板库,主要包括容器,分配器,算法,迭代器,适配器和仿函数 六大部件。标准库与标准模板库的关系:标准模板库大约占标准库的百分之七八十。泛型编程与 STL泛型编程(Generic Programming)就是使用模板为主要工具来进行编程,与面向对象编程(Object Oriented Programming)是截然不同的编程原创 2020-08-12 11:10:37 · 288 阅读 · 0 评论