STL简介

简介: 简单介绍一下C++的STL

1.什么是STL

STL(standard template libaray-标准模板库):是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的六大组件

%L`EY@EYIJ50(8V((0EFMAO.png

4.STL的重要性

是C++的重要部分,不学好STL,就不能说自己会C++。在面试,笔试和工作中,C++的STL会一直陪伴着C++工程师。

5.如何学习STL

BDY8]CUZ(Y9}1(WO~@H}{7N.png

学习STL的三个境界:能用,明理,能扩展 。

6.STL的缺陷

1. STL库的更新太慢了。这个得严重吐槽,上一版靠谱是C++98,中间的C++03基本一些修订。C++11出来已经相隔了13年,STL才进一步更新。

2. STL现在都没有支持线程安全。并发环境下需要我们自己加锁。且锁的粒度是比较大的。

3. STL极度的追求效率,导致内部比较复杂。比如类型萃取,迭代器萃取。

4. STL的使用会有代码膨胀的问题,比如使用vector/vector/vector这样会生成多份代码,当然这是模板语法本身导致的。

相关文章
|
应用服务中间件 Docker 容器
Docker 安装 Tomcat
一、查看 tomcat 版本 访问 tomcat 镜像库地址:https://hub.docker.com/_/tomcat,可以通过 Tags 查看其他版本的 tomcat; 二、拉取 Tomcat Docker 镜像 打开终端或命令提示符,运行以下命令从 Docker Hub 拉取 Tomcat Docker 镜像: docker pull tomcat 三、创建 Tomcat 容器 一旦 Tomcat 镜像下载完成,可以基于该镜像创建一个容器。运行以下命令创建 Tomcat 容器: docker run -d -p 8080:8080 --name tomcat-container t
618 0
安装VS2015时出现“安装包丢失或损坏”
安装VS2015时出现“安装包丢失或损坏”
|
存储 网络协议 安全
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
747 0
|
分布式计算 vr&ar Spark
人脸口罩识别——人脸添加口罩方法masked_faces
人脸口罩识别——人脸添加口罩方法masked_faces
346 1
|
编译器 测试技术 调度
C++ 中 template<class T>和template<typename T>的区别
C++ 中 template<class T>和template<typename T>的区别
840 0
|
图形学
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
594 1
|
数据采集 移动开发 搜索推荐
HTML基础-HTML5新增语义标签:解锁网页结构新维度
【6月更文挑战第5天】本文介绍了HTML5的语义标签,旨在提升网页结构化和可访问性。核心语义标签包括`<header>`、`<nav>`、`<main>`、`<article>`、`<section>`、`<aside>`、`<footer>`、`<figure>`和`<figcaption>`。常见问题包括滥用标签作布局工具、忽略`<main>`、不恰当嵌套和忽视辅助功能。
414 3
|
数据可视化 前端开发 JavaScript
【Echarts大屏】智慧图书馆可视化大屏(附源码一键复制)
【Echarts大屏】智慧图书馆可视化大屏(附源码一键复制)
|
JavaScript 算法 开发者
代码风格:遵循Vue官方的风格指南和最佳实践
【4月更文挑战第23天】本文强调了遵循Vue官方风格指南和最佳实践对确保项目可读性、可维护性和可扩展性的重要性。关键点包括:1) 了解并遵循Vue风格指南,基于核心团队经验和社区实践;2) 保持组件结构一致性,简化模板逻辑,使用解构赋值;3) 遵循命名和注释规范,使用描述性命名和清晰注释;4) 编写可读性强的代码,利用计算属性和辅助方法;5) 优化性能,如避免不必要的渲染,使用v-if/v-show,和异步更新队列。遵循这些实践能提升代码质量和团队协作效率。
415 1
|
存储 程序员 编译器
windows下的串口编程,串口操作类封装
windows下的串口编程,串口操作类封装

热门文章

最新文章