如何使用STL文档

这个站点记录SGI标准模板库中的所有组件的文档。每个页面描述一个组件,以及这个组件和其它组建关联。

这个文档假定你对C++比较熟悉,尤其是C++模板。此外你在阅读单个组件的描述文档之前,你应该先阅读标准模板库概述:在概述中定义了整个文档都会使用到的一些专用词汇。

1. STL组件的分类

STL组件依照它们的功能被分成六个大的categories类别:Containers容器,Iterators迭代子,Algorithms算法,Function Objects函数对象,Utilities实用工具,Allocator内存分配器;这些分类在STL概述中已有定义,STL编程指南的目录也是以此来组织的。

STL文档包括两个索引。一个是主索引,以字母顺序列出所有组件;另一个是分类索引,组件首先被分类,在每一类中再以字母顺序排列。分类列表中有一个分类在目录中是没有的:Adapater适配器。适配器是一个类或者函数,用来把一种接口变换成另一种接口。适配器没有在目录中出现的原因是,没有一个适配器它单单是一个适配器的,每一个适配器除了是适配器以外,他总还是其它某种东西。比如说stack,它是一个容器,也是一个适配器。因此,stack在分类索引的两个地方出现。还有其它一些组件也同样在分类索引中出现多次的。

STL文档对于组件有两种分类方式:

  1. Categories(类别)是依据组件的功能进行分类的。categories包括:
    • Container 容器
    • Iterator 迭代子
    • Algorithm 算法
    • Function Object 函数对象
    • Utility 实用程序
    • Adaptor 适配器
    • Allocator 内存分配器
  2. Component types组件类型是一种结构分类:它基于C++的语言结构给组件分类。组件类型包括component types:
    • Type 类型 (结构体struct或者类class)
    • Function 函数
    • Concept 概念 (在STL概述中定义的)

这两种分类体系是独立的,每一个STL组件都有这两种分类。比如说vector,它的类别Category的是Container,它的组件类型Component type是Type;Forward Iterator,它的组件类型是概念,它的类别Category是迭代子。

这两种分类出现在每一个描述STL组件的页面的开头。左上角是组件的类别,比如Container, Iterator, Algorithm, Function Object, Utility,Adapater或者Allocator;右上角是组建的类型,比如type,function或者concept。

使用STL文档

STL是一个泛型的库:几乎每一个类和函数都是模板。因此,STL文档的最重要目的就是提供对哪些类型可以做模板参数的一个清晰描述。在概述中说过,概念是一个类型必须满足的需求的集合,一个类型如果满足这个概念的所有需求则这个类型被称为这个概念的模型。

概念在STL文档中使用的非常多,不仅因为它直接描述了类型的需求,而且他还是组织类型的工具。(比如说,ostream_iterator和insert_iterator都是Output Iterator的模型,这就描述了这两种类型的共同点。)概念既用来描述类型也用来描述函数。

1. 概念concept页面的格式

描述一个概念的页面包括以下几个部分:

2. 类型type页面的格式

描述一个类型type的页面的包括以下几个部分:

3. 函数function页面的格式

描述函数的页面的包含以下几个部分:

STL编程指南/如何使用STL文档 (2008-02-23 15:34:56由localhost编辑)

ch3n2k.com | Copyright (c) 2004-2020 czk.