stl源码剖析
文章平均质量分 59
视频链接 https://www.youtube.com/watch?v=VC51-1vldRE&list=PLTcwR9j5y6W2Bf4S-qi0HBQlHXQVFoJrP&index=2
橘子味的茶二
我像一粒尘埃
展开
-
8:容器分类及其结构
标准库大部分都是复合关系 而不是继承关系 容器之间的界限很清晰。原创 2024-05-07 15:12:46 · 157 阅读 · 0 评论 -
7: 分配器
我们malloc出来的空间一般直接通过 free去释放 不需要记录传入的指针所指向的地址占用空间 因为这部分已经在malloc的时候 被记录在额外开销里面去了 gcc这样设计allocator是不需要这种cookie的 每个空间都有自己的管理链表来控制。malloc 实际分配的内存 是比你想要的内存是要大的 其他的每一位的作用 可以在内存调用相关课程里面学习。附加的东西 格外开销基本都固定的 图中蓝色的部分才是用户真正需要的 其他部分是额外开销。注意下面是老版本的allocator 不是现在在使用的。原创 2024-05-07 11:51:38 · 1038 阅读 · 1 评论 -
5:OOP面向对象编程 VS GP 泛型编程
本质上最后还是通过比较某个数字或者字母的大小来对比的为什么list不能使用::sort()排序代码里面对于迭代器的操作 说明这个迭代器必须是随机访问的迭代器 具有随机访问的功能 ,所以list的特性(链表 ) 决定它不能使用这个全局定义的sort 只能通过内部去封装实现一个sort 以实现对应的功能。原创 2024-05-06 15:35:20 · 279 阅读 · 1 评论 -
4:分配器测试
可以参考的好文章STL源码剖析——allocator分配器(上)STL源码剖析——allocator分配器(下)原创 2024-05-06 10:12:03 · 155 阅读 · 1 评论 -
3:容器之分类和各种测试
当负载因子超过这个阈值时,哈希表可能会自动扩容,创建两倍于原来个数的箱子,以容纳更多的元素,并降低哈希冲突的概率。然而,实际上 max_size() 返回的值通常是一个非常大的数,代表理论上的最大限制,而不是实际机器上可用的内存大小。deque容器其实是一段一段buffer组合而成的,用指针给它串联到一起, 可以同时向两边扩展,从一个指针的buffer末尾跳转到下一个指针的buffer头部 是使用了指针++的操作来实现的。总之,哈希表的负载因子是一个重要的参数,它决定了哈希表的填充程度和性能表现。原创 2024-05-04 08:53:16 · 981 阅读 · 0 评论 -
2:STL体系结构基础介绍
在使用stl的时候 应该根据业务的需求来使用具体的容器 比如插入元素的位置 是头部还是中间 还是尾部。一般是begin 可以访问到第一个元素 end访问不到 它是只想最后一个元素的下一个位置。程序在于一次使用六大部件 算出数组中大于40的元素个数。容器里面表示数据 一般采用前闭后开区间。下面代码显示iterator的使用方式。原创 2024-04-30 09:19:44 · 129 阅读 · 0 评论 -
1:headers 版本 重要资源 《C++STL标准库和泛型编程》
第一节的内容原创 2024-04-29 11:14:12 · 229 阅读 · 0 评论