标准模板库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方法即可。

你可能感兴趣的:(STL)