第1章 STL概论与版本简介

来源:互联网 发布:ubuntu 拼音 编辑:程序博客网 时间:2024/06/10 08:37

第1章 STL概论与版本简介

subroutines子程序

procedures程序

functions函数

classes类别

function libraries函数库

class libraries类别库

components组件

object oriented面向对象

patterns模式

reusability复用性

generic paradigm泛型思维

iterator迭代器

adapter配接器

increment前进

dereference取值

软件工程的慢慢奋斗史就是为了复用性的提升。

STL的价值在于两方面:(1)低层次的零部件。(2)高层次,泛型思维、系统化的、条理分明的“软件组件分类学(conponents taxonomy)”。

C++允许程序员通过指针以极佳弹性处理内存,这一点正是既要求一般化(泛型)又不失效能的一个重要关键。

STL六大组件,彼此可结合套用

1.容器(containers):各种数据结构,如vector,list,deque,set,map用来存放数据。

2.算法(algorithms):各种常用算法如sort,search,copy,erase…。

3.迭代器(iterators):扮演容器与算法之间的胶合剂,”泛型指针”,共有五种类型,以及其他衍生变化。

4.仿函数(functors):行为类似函数,可作为算法的某种策略(policy),一般函数指针可以视为狭义的仿函数。

5.配接器(adapters):一种用来修饰容器、仿函数、迭代器接口的东西。

6.配置器(allocators):负责空间配置与管理。从实现角度看,配置器是一个实现了动态空间配置,空间管理,空间释放的class template。

GUN源代码开放精神

open source — Richard Stallman(理查.史托曼) — GUN宣言 — GPL(General Public License,广泛开放授权)

Emacs/GCC/Linux

本书采用的套件是Cygnus C++ 2.91 for windows,又称为EGCS 1.1

实现版本

(1)HP实现版本

(2)P.J.Plauger版本(被Visual C++)采用

(3)Rouge Wave实现版本(被C++Builder采用)

(4)STLport实现版本,提供一个以SGI STL为蓝本的高度可移植性实现版本。

(5)SGI STL实现版本(被GCC采用),可以在C:\cygnus\sygwin-b20\include\g++找到所有STL头文件。

SGI STL的编译器组态设置

不同的编译器对C++语言的支持程度不尽相同,为了便于广泛移植,SGI STL准备了一个环境组态文件

原创粉丝点击