7-分配器、list不能用全局sort、

1 有默认分配器:

既然有默认分配器,那就有其它分配器,而更高阶就是自己写分配器。

下面使用list(双向链表),搭配其它分配器试试,很自然的想法

 

其它分配器有7个,mt:multithread分配器,因为分配器是管理内存的(内存分配器),所以后面的测试可以用push_back

真正要做效率测试是没那么简单的(如何做?)

问题:是否可以直接使用分配器

解答:可以,分配器是一个类

 

deallocate需要还当初要的个数

这个课没有输出的结论

 

2 库文件布局:

  

3 OOP和GP

 

 first + (last-first)/2,随机访问迭代器,这句话就是list不能用全局sort的原因

 list为什么不能用全局sort?它的迭代器不能+5,跳到很后面

GP:泛型编程,data和函数分开来

vector和deuqe自身都没有排序函数,

GP的好处:

min的源代码看起来好简洁。仿函数作用于算法

算法的实质无非就是比大小

右下角的max接口参数中有个仿函数(划重点:仿函数可以用作参数,因为它是一个像函数的对象)

字符串比大小:默认一个字符一个字符比,不是按长度比,如果要按长度比,就要自己写仿函数。

 

4 泛化、全特化、偏特化

不能被重载的操作符:.   .*   ::   ? :

 

5 new最终调用malloc,

malloc最终调用不同系统的system api

malloc给你的东西远比你要的东西要多。

分配器的实现:最重要的函数是allocate和deallocate,allocate调用operator new,deallocate调用operator delete

 

BC5、G2.9对allocate的实现又不一样。 

后面讲的很好,但还是先跳过。

 

6 容器之间的关系与分类(出来了之前没怎么提到过的红黑树等)

 

heap里面有一个vector

slist == forward list,hash_set改名为unordered_set等

 

7 深度探索list

 

posted @   妖山鬼店  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示