11.1 标准模板库简介

(library)是一系列程序组件的集合,它们可以在不同的程序中重复使用。库函数设计的第一位的要求就是通用性, 模板 (template)为通用性带来了不可估量的前景。

标准模板库 (Standard Template Library)简称 STL ,是ANSI/ISO C++最有特色、最实用的部分之一。STL包含: 容器类 (container)、  迭代子 (iterator)、  算法 (algorithm)

泛型算法 (generic algorithm)和 函数对象 (function object)使算法摆脱了对不同数据类型个性操作的依赖。

标准模板库简介

◆  1、容器类(Container)
容器类是管理序列的类,是容纳一组对象或对象集的类。通过由容器类提供的成员函数,可以实现诸如向序列中插入元素,删除元素,查找元素等操作,这些成员函数通过返回迭代子来指定元素在序列中的位置。

容器分为三大类:
  • 顺序容器(Sequence Container or Sequential Container)
  • 关联容器(Associative Container)
  • 容器适配器(Container Adopter)

顺序容器和关联容器称为第一类容器(first-class container),参见下表。


容器提供类似的接口。许多基本操作是所有容器都适用的,而有些操作则适用于类似容器的子集,可以用有类似操作的新类来扩展STL。参见表11.2 所有标准库容器共有的函数

◆  2、 泛型算法(Generic Algorithm)
在模板中算法不依赖于具体的数据类型,而泛型算法更进一步不依赖于具体的容器。

泛型算法中采用 函数对象 (function object)引入不同情况下同一算法的差异。它没有使用继承和多态,避免了虚函数的开销,使STL效率更高。

◆  3、迭代子(Iterator)
迭代子是指针概念的泛型化,它指向容器中的元素,它能象指针一样增减,轮流指示容器中每个元素。所以说迭代子是面向对象版本的指针。

迭代子可以包括指针,但迭代子又不仅仅是一个指针。

迭代子把算法与容器连接起来。算法只是间接通过迭代子操作容器元素,算法本身与容器无关。算法通常返回迭代子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值