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中的对象。函数本身与它们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用。
要点:
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中的对象。函数本身与它们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用。
相关文章推荐
- c++primer要点-拷贝控制
- 李显龙:会C++的新加坡总理
- C++ 函数指针
- VC++ 内存泄露与检测的一种方法
- 除法表达式
- CURL使用(error LNK2019)
- C++ map的基本操作和使用
- C/C++堆、栈及静态数据区详解
- C++知识点总结
- 【C++/STL】list的实现(没有采用迭代器和空间配置器所实现的双向链表的基本功能)
- C++——使用类
- 推荐!国外程序员整理的 C++ 资源大全
- c++等级考试管理系统
- 使用c++标准库实现二分法查找基本算法
- 素数三元组
- 我的C++ 学习心得
- C++ primer 5 笔记1 chapter 1 begin
- Windows,C++编程创建窗口的过程详解
- c++ 常量指针 const*const
- C++重载运算符