• 07 STL 简介


    目录

    1. 什么是STL
    2. STL的版本
    3. STL的六大组件
    4. STL的重要性
    5. 如何学习STL
    6. STL的缺陷

    1. 什么是STL

    c++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构和算法的软件框架

    2. STL的版本

    • 原始版本
      Alexander Stepanov、Meng Lee在惠普实验室的原创版本,本着开源精神,它们声明任何人可以运用、拷贝、修改、传播、商业使用,唯一条件就是需要开源使用。HP版本,是所有STL实现版本的始祖
    • P.J版本
      由P.J.Plauger开发,继承HP版本,被Windows Visual C++采用,不能公开或修改,缺陷:可读性较低,符号命名怪异
    • RW版本
      由Rouge Wage公司开发,继承自HP版本,被C++ Builder采用,不能公开或修改,可读性一般
    • SGI版本
    • 由Silicon Graphics Computer Systems,Inc公司开发,继承自HP版本,被GCC(Linux)采用,可移植性好,可公开、修改甚至贩卖,从命名风格和编程风格看,阅读性非常高,后面部分主要是这个版本

    3. STL的六大组件

    在这里插入图片描述

    4. STL的重要性

    如今 STL 已完全被内置到支持 C++ 的编译器中,无需额外安装,这可能也是 STL 被广泛使用的原因之一。

    5. 如何学习STL

    《The C++ Standard Library》
    分为三个境界

    • 第一境界: 熟用STL
    • 第二境界:了解泛型技术内涵与STL的学理乃至实作
    • 第三境界:扩充STL

    6. STL的缺陷

    1.STL库更新太慢,上一个靠谱版本是98,c++03才一些修订,c++11出来已经隔了13年
    2.STL没有支持线程安全。并发环境下需要自己加锁,且难度较大
    3.极度追求效率,导致内部比较复杂,比如类型萃取,迭代器萃取
    4.STL的使用会有代码膨胀的问题,比如用vector/vector这样会生成多份代码,当然这是模板语法本身导致

  • 相关阅读:
    朋友圈推广如何做?
    通俗易懂介绍mysql索引为什么使用B+树?
    Redis群集
    【TS04——接口的多态——泛型接口】
    2023年中国研究生数学建模竞赛赛题浅析
    什么是自动化测试,一文吃透自动化测试【实战总结/建议收藏】
    【无标题】
    16、DQL(分组查询:group by和having)
    数学建模B多波束测线问题B
    Python究竟属不属于嵌入式语言?
  • 原文地址:https://blog.csdn.net/qq_43422358/article/details/136263264