美文网首页
2018-02-10

2018-02-10

作者: MrCool_5484 | 来源:发表于2018-02-10 22:46 被阅读0次

Boolan STL 第二周

OOP与GP区别:OOP总是将data与methods关联在一起,GP则是将data与methods分开。

使用GP的好处:

algorithms的本质:最终都是元素之间比大小。

list为什么不能使用::sort()?:因为list内部元素是分开的,它的iterator不是random access iterator,无法使用algorithm提供的sort()。

无法被overload的符号:"::",".",".*"

allocator中的operator new()实现:调用malloc(),会额外占用空间记录申请内存大小(cookies)和填充pad到16的倍数,所以申请小块空间相较于申请大块空间的空间利用率会小的多。

G2.9的alloc优点:分成16块空间,从8byte开始每块空间存放的元素递增8byte,第16块空间存放元素为128byte,每块空间后面存放的元素之间没有cookies,只在整块前后有cookies,大大减少系统开销。

容器结构再分类:

list(双向循环链表结构):

list的iterator的实现:

iterator的实现的区别:除vector、array直接使用其指针外其他容器的iterator都是由smart pointer实现。

iterator必须提供的五种供algorithms的associated type:

iterator traits的用途:区分class iterator和non-class iterator,利用偏特化来实现5种associated type的提供,主要是为pointer类型提供typedef的功能。

完整的iterator_traits:

vector的代码实现:

vector的push_back实现:

vector的iterator实现:

array实现:

相关文章

  • linux 连接工具

    title: linux 连接工具date: 2018-02-10 00:10:55categories: [co...

  • linux 基本命令

    title: linux 基本命令date: 2018-02-10 00:35:22categories: [co...

  • 2018-02-10

    2018-02-10 禾隆李亮 2018-02-010 19:00 · 字数 290 · 阅读 2 · 日记本 【...

  • Excel2010公式与函数-逻辑函数

    最近更新:2018-02-10 1.True-False2.IF函数3.IF函数嵌套4.And Or Not 1....

  • 02_ubuntu中安装Ruby

    时间:2018-02-10 作者:魏文应 一、说明 ruby官网推荐使用RVM(Ruby Version Mana...

  • 虚拟联网 NAT方式注意事项

    title: 虚拟联网 NAT方式注意事项date: 2018-02-10 11:57:09tags: 虚拟机联网...

  • 2018-02-11

    寒假读书汇】吴宇晨:旧社会的产儿 简约语文 已关注 2018-02-10 14:09 · 字数 1150 · 阅读...

  • 05_ubuntu下安装jekyll

    时间:2018-02-10 作者:魏文应 说明 jekyll 是一个可以用于创建博客软件工具。 jekyll 依赖...

  • 2018-02-10

    是谁毁了爸爸的幸福?是谁夺走了我的童年? 触摸心语 2018-02-10 22:31 · 字数 3310 · 阅读...

  • 龙利鱼

    20180210 【享瘦营】食谱分享六:无油版香煎龙利鱼 兰德朱迪 关注 2018-02-10 16:30 · 字...

网友评论

      本文标题:2018-02-10

      本文链接:https://www.haomeiwen.com/subject/eimhtftx.html