STL in C++ 概述

STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的Sort()函数是完全通用的,你可以用它来操作几乎所有的数据集合,包括数组。

要点:
STL算法作为模板函数提供。为了和其他组件相区别,在本文中STL算法后接一堆圆括号的形式表示,例如Sort()。

STL的另一个重要特性是,它不是面向对象的。为了具有足够的通用性,STL主要依赖于template模板而不是封装,继承和多态。你在STL中找不到任何明显的类继承关系。这好像是一种倒退,但这正好是使得STL的组件具有广泛通用性的底层特征。

STL提供了大量的模板类和函数,可以在ACM中使用。所有STL的大约50个算法都是完全通用的,而且不依赖于任何的数据类型。下面说明了三个基本的STL组件。

1、迭代器提供了访问容器中对象的方法。例如,可以使用一对迭代器指定list或者vector中的一定范围的对象。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。
2、容器是一种数据结构,如list、vector和deque,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器。
3、算法是用来操作容器中的数据的模板函数。例如,STL用Sort()来对一个vector钟的数据进行排序,用find()来搜索一个list中的对象。函数本身与它们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值