您的位置:首页 > 编程语言 > C语言/C++

STL in C++ 概述

2015-07-10 19:59 375 查看
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中的对象。函数本身与它们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: