zoukankan      html  css  js  c++  java
  • STL源码剖析

    这两天略读完了《STL源码剖析》,之所以是略读,就是只看大体,不讲具现(这个词在《深度探析C++对象模型》中比较多)

    已经看过好几本C++的书了,感觉C++本身设计的博大精深,而C++编译器就更是一个神奇的东西,换句话说,你永远不知道C++编译器背着你做了哪些出乎你意料的事

    不扯远了

    我主要是想看STL容器的具体实现而去看《STL源码剖析》的,的确收获不少,但不止着一个,总结而言,大概有三点觉得印象很深

    1. 内存分配:所谓分配有两级实现,大于128k内存由第一级实现(malloc和free);小于128k的由第二级实现,第二级采用内存池的思想,内部分配了8的倍数的内存,如,8k, 16k,24k,32k,40k,...128k。这个分配方法,一来体现了内存池的分配方式,另外让我想起了linux内存的伙伴系统,似乎有异曲同工之妙
    2. Traits编程方式:首先看设计模式的迭代器模式“提供了访问类的接口而不暴露类的具体实现”,这就是所谓的特性编程,什么叫做特性编程呢,我想我可以这么理解:一组事物会表现出某种特性,而你掌握了这种特性,你就掌握了跟它交流的方法,就好比语言,一旦你知道了如何讲普通话,你就可以和其他人交流而不用具体限定跟哪个人,普通话可以作为中国人的一种特性。
    3. 实现方式:映像深刻的就是list是双向链表实现的,deque用的结构很复杂,用地址map伪装成两端可读写的容器,大概就是一个又一个连续的内存块,通过一个地址映射将它们都串起来,其它的我都好像已经看过了,已经了解了

    先就这么简单的总结总结吧

  • 相关阅读:
    ABAP 程序中的类 沧海
    ABAP类的方法(转载) 沧海
    More than 100 ABAP Interview Faq's(2) 沧海
    SAP and ABAP Memory总结 沧海
    ABAP Frequently Asked Question 沧海
    ABAP System Reports(Additional functions) 沧海
    ABAP Questions Commonly Asked 1 沧海
    ABAP Tips and Tricks 沧海
    ABAP System Fields 沧海
    ABAP 面试问题及答案(一):数据库更新及更改 SAP Standard (转) 沧海
  • 原文地址:https://www.cnblogs.com/moondark/p/3436450.html
Copyright © 2011-2022 走看看