侯捷STL体系学习记录 (一)

    技术2022-07-11  102

    P2

    STL 六大部件 : 容器 分配器 算法 迭代器 适配器 仿函数 count_if 查找条件下的值 容器不一定是连续的 比如链表 容器序列 : 连续式 关联式 (C11 unorder con (hash_table)) 连续式: Array ( 无法扩充) vector (前端无法改变,会自动扩充) deque(双端队列) List(容器默认是双向链表) (指针在32 位上占位4个字节) forward-list 单项列表

    对于需要大查找使用 的数据结构 set multiset 底部实现是红黑树 set 和map 区别在于一个 是 key 就是 value map 是两个 key-value

    散列表 冲突处理 Separate Chaining

    array test 必须指明大小 和 类型 vector test vector 扩展 是 2 被扩展 find 全局函数 deque 是分段连续的 ,给人的连续是假象 ,双端队列不能随机访问,deque 本身灭有 sort 需要调用全局排序 multiset multimap hash_table 元素的个数 大于等于篮子 就要扩充(经验法则)

    ==========================================

    第二次记录 分配器 oop(将数据和方法 封装到一起) gp (把数据 和方法分开来) 操作符重载 四个操作符 不能重载 :: . .*

    链表模板 (迭代器类似于指针) 1 * 2 -> 必须重载 函数模板 有实参推导 < 作用在 b 上 然后 就会去找 ston 有没有重载这个 stone的 < 号 特化 特化 例子 偏特化 (局部特化) operator new () 和malloc () operator new 最终都会调用 malloc 代码如下 malloc 分配内存 分配器最重要两个函数 allocte 和 dealocate GC2.9 alloc 在头文件<stl_alloc.h>


    容器 所有容器都有一个 iterator (模拟指针) P13没看懂 https://www.bilibili.com/video/BV1db411q7B8?p=14

    Processed: 0.023, SQL: 9