STL简介

学C++,必须也要学会使用STL,STL全称standard template library,也就是所谓的标准模板库,它包括了容器,也就是我们学习数据结构时自己手写的链表,栈,队列等等,当然栈和队列只是在原有链表或者deque的基础上砍掉了某些东西而形成的一种结构,在STL中,它不属于容器的范畴,而是属于配接(adapters).
我们可以很明显的从STL中看到什么叫做泛型,泛型编程是如何的,而模板的使用就是为了实现泛型,最终都是用来减少代码的使用…
总之,有了STL这个库之后,当你想使用链表等数据结构时,就不用自己在手写链表,或者粘贴复制到代码中去了,因为STL中都已经给我们封装好了,直接使用即可.用起来也十分的方便快捷,经过大牛们的不断优化算法,所以效率一定比我们自己实现的要快,健壮性更加的强..


首先,我们要知道,STL分为6个部分:

1.容器(containers)
2.迭代器(iterators)
3.算法(algorithms)
4.配置器(allocator)
5.配接器(adapters)
6.仿函数(functors)


1.容器:在STL中主要封装了string,vector,deque,list,map,set等容器…用来存放元素(elements).

2.迭代器:迭代器在STL中类似于C语言中的指针,一般有两个特殊的迭代器,在容器的成员函数中可直接使用,一个是begin(),另一个是end(),当然…rbegin()和rend()也算,好吧…总之,在STL中,迭代器基本可以当成指向对应容器的指针来直接使用.

3.算法:算法可以通过迭代器来对容器进行一些操作,但是却不会删除或是增加原容器的元素数量,可以说算法是通过迭代器来存取容器的内容,一定要记住,算法不能够通过迭代器增加或者删除容器的元素!!!

4.配置器:也叫空间配置器,用来负责空间的配置和管理,从实现的角度看,配置器是实现了动态空间配置,空间管理和空间释放的模板类.

5.配接器:一种修饰容器和仿函数或者迭代器接口的东西.

6.仿函数:一种类似函数的东西,STL库中也给出了一些可以直接使用的仿函数在算法中使用,必须greater<>(),less<>(),plus<>()等等…一般来说,可以是模板函数,但大多是模板类中重载()来实现的…

你可能感兴趣的:(stl)