湖南理工学院计算机系 邓涛 2006 年 8 月 41
标准模板库 STL——容器、算法、迭代器和标准异常简介
一、类模板或模板类
声明方法跟函数模板相似。
Template <class T>Class classname{……};
类模板可以有多个模板参数,也可以有默认参数。
二、STL 概述
1) C++标准库在 C 运行库的基础上作了大幅度的扩充,其中最大的扩充则是在 C++标
准库中加入了 STL。同时原有的 C 运行库中的部分内容也根据泛型技术在内部作
了很大的修改(如输入输出流类和字符串类)。
2) 对 STL 的评价
a) C++标准的发布给 C++社群带来了翻天覆地的大变动,不是来自语言本身,而
是来自标准程序库。
b) STL 是 C++标准程序库的核心。
c) STL 是一个泛型(generic)程序库。
d) STL 赋予 C++新的抽象层次。
e) STL 是 C++的精髓。
f) 《Learning Standard C++ as a New Language》(Bjarne Stroustrup)
g) 今天的 C++可不是五年前的 C++。
h) 使用 STL 可以提升你的编程效率和程序品质。
3) 一个例子:
4) STL 总览
//例 4-01
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void main()
{
vector<int> v;
vector<int>::iterator pos;
int i;
for(i=1;i<21;i++)v.push_back(i);
random_shuffle(v.begin(),v.end());
for(pos=v.begin();pos!=v.end();++pos){cout<<*pos<<' ';}
cout<<endl;
sort(v.begin(),v.end());
for(pos=v.begin();pos!=v.end();++pos){cout<<*pos<<' ';}
cout<<endl;
}