栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

19.1 STL总述、发展史、组成与数据结构谈

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

19.1 STL总述、发展史、组成与数据结构谈

一:几个概念

<1>c++标准库 standard library>。 只要装了c++编译器,那么这个c++标准库自动就被安装进来了,vector,可复用。c++编译器自带,可以在代码中包含头文件直接使用。引入的目的就是解决一些反复使用的功能,我们直接使用即可。
<2>标准模板库,STL = standard template library。包含在c++标准库中,是c++标准库的核心。STL深刻影响着c++标准库。
<3>泛型编程:generic programming。使用模板template为主要的编程手段来编写代码。
我们可以认为:标准模板库就是使用泛型编程的编码方式为我们提供的一套库。

二:推荐书籍

《c++标准库第二版 2015》
《stl源码剖析》
权威书籍 c++标准库第二版 侯捷 概览即可,作为工具书,因为我们只需要使用其中的一部分的内容
STL源码剖析 侯捷 不建议自己详细剖析,stl源码太难衡量。

三:算法和数据结构谈

树、散列表(哈希表)、数据结构
疑问:要不要把算法和数据结构的知识学习,然后再学习STL?

<1>数据结构浅谈
数据结构是研究数据怎么存储的问题。
数据结构:栈,队列,链表,散列表、树、图,我们需要通过写代码来实现这些具体的数据结构;每一种数据结构都有一定的特点,有的存储快,有的查询快,对数据结构有简单认识,不需要知道太多。
<2>对栈,队列,链表这三个需要大概了解。
栈:后进先出;
队列:先进先出;
链表:顺序存储的一种结构,有数据,有next指针;
其他数据结构,树,图,散列表等有一定概念就可以。

<3>推荐书籍:《算法导论》,工作中不需要就不要啃这种书。

四:STL标准模板库发展史和各个版本

1998年,STL被融入到C++标准中来;
很多厂商去实现很多stl版本:
<1>HP(惠普)stl,是所有实现坂本的始祖;
<2>SGI stl:参考惠普stl实现的,linux下的GUN(gcc,g++)用的就是这个版本;
<3>P.J.Plauger STL:参考惠普STL实现的,Visual c++一般用这个版本的stl。
还有其他版本…

五:标准库的使用说明

所有里面用的东西,都在std里面。所以源码文件开头使用using namespace std;
标准库中和stl的相关头文件有几十到上百个,使用的时候需要包含相关的头文件。

六:STL的组成部分

<1>容器:vector、list、map
<2>迭代器:用于遍历或者访问容器中的元素;
<3>算法:(函数)用来实现一些功能,search、sort、copy…
<4>分配器(内存分配器):一般不使用,进行内存分配,一般不需要明确指定,使用默认分配即可;
<5>其他:如适配器,仿函数(函数对象)等。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934365.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号