下面的代码显示了怎样把各种各样的泛型算法应用到vector 类对象上
#include <vector>
#include <algorithm>
#include <iostream>
int ia[ 10 ] = {
51, 23, 7, 88, 41, 98, 12, 103, 37, 6 };
int main()
{
vector< int > vec( ia, ia+10 );
// 排序数组
sort( vec.begin(), vec.end() );
// 获取值
int search_value;
cin >> search_value;
// 搜索元素
vector<int>::iterator found;
found = find( vec.begin(), vec.end(), search_value );
if ( found != vec.end() )
cout << "search_value found!\n";
else cout << "search_value not found!\n";
// 反转数组
reverse( vec.begin(), vec.end() );
// ...
}
标准库还提供了对map 关联数组的支持,即数组元素可以被整数值之外的其他东西索引。
例如,我们可以这样来支持一个电话目录,这个电话目录是电话号码的数组,但是它的元素
可以由该号码所属人的姓名来索引
#include <map>
#include <string>
#include "TelephoneNumber.h"
map< string, telephoneNum > telephone_directory;
在第6 章我们将看到vector map 以及标准C++库支持的其他容器类型,本书将通过一
个文本查询系统的实现来说明这些类型的用法,而第12 章会讲解泛型算法附录按字母顺序
提供了每个算法的解释及其用法。
本章大致地讲述了C++为数据抽象基于对象的程序设计,面向对象的程序设计、泛
型程序设计、模板容器类型以及泛型算法、大型程序设计异常处理与名字空间提供
的支持,而本书余下的部分将更详细地介绍这些内容,逐步讲解C++中基本但又非常先进
的特性。