首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

基准模板库STL

2012-11-12 
标准模板库STLSTL的最主要的两个特点:数据结构和算法的分离,非面向对象本质。访问对象是通过象指针一样的迭

标准模板库STL

STL的最主要的两个特点:数据结构和算法的分离,非面向对象本质。访问对象是通过象指针一样的迭代器实现的;容器是象链表,矢量之类的数据结构,并按模板方式提供;算法是函数模板,用于操作容器中的数据。由于STL以模板为基础,所以能用于任何数据类型和结构。

?

我们常用到的STL容器有vector、list、deque、map、multimap、set和multiset。其底层实现各不相同:

vector是动态数组。list是双向链表。deque为一段段连续定长数组拼接而成。map是一对一映射。multimap是一对多映射。set是没有重复元素的平衡二叉树。multiset中可以包含重复元素。

?

STL迭代器可分为五种:

·??????? Input iterators 提供对数据的只读访问。

·??????? Output iterators 提供对数据的只写访问

·??????? Forward iterators 提供读写操作,并能向前推进迭代器。

·??????? Bidirectional iterators提供读写操作,并能向前和向后操作。

·??????? Random access iterators提供读写操作,并能在数据中随机移动。

?

STL提供很多使用的函数模板,在使用这些函数模板时能够回调函数,这里需要注意的就是模版函数可以接收的binary_function的返回值类型,以及回调函数的参数列表两个问题。除了回调函数,还可以传入函数对象,这个对象重载operator方法即可。

热点排行