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

一:几个概念

<1>c++标准库:c++ Standard Library。只要装了c++编译器,那么这个c++标准库自动就被安装进来了,可以在代码中包含头文件直接使用。引入的目的是解决一些反复使用的功能,我们直接使用即可。使用好标准库,是一个合格c++程序员的追求之一。

<2>c++标准模板库:Standard Template Library(STL)。包含在c++标准库之中,作为c++标准库的一个重要组成部分或者说是c++标准库的核心。STL深刻影响着c++标准库。

<3>泛型编程:Generic Programming。使用模板template为主要的编程手段来编写代码。我们可以认为:标准模板库就是使用泛型编程的编码方式所写的一套供我们非常方便使用的一套库。

二:推荐书籍

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

三:算法和数据结构谈

树、散列表(哈希表):数据结构。
疑惑:要不要把算法和数据结构的知识好好学一学?

<1>数据结构浅谈
数据结构:研究数据怎么存储的问题。栈、队列、链表、散列表(哈希表)、树、图。每一种数据结构都有一定的特点,有的存储快,有的查询快,我们需要通过写代码来了实现这些具体的数据结构。

<2>数据结构学习方法:要求有简单认识,不需要知道太多。
但是对栈,队列,链表这3个需要大概了解。
栈:后进先出
队列:先进先出
链表:有数据,有next指针。顺序存储的一种结构
其他的比如树、图、散列表。大概有一点印象最好。除非将来做和算法和数据结构相关工作,有必要精细研究每一种数据结构知识,否则没有必要花太多时间研究这些东西。我们直接使用就可以。当需要的时候直接学习。比如树中的红黑树,平衡等需要耗费大量时间,我们不需要去研究。

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

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

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

五:标准库的使用说明

所有内部用到的东西都在std这个命名空间内。所以.cpp源码文件开头一般都会写入如下代码:using namespace std;
标准库中和stl相关的头文件有几十到几百个,许多头文件都不需要扩展名了。

六:STL的组成部分

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值