简介
STL的六大部件分别是容器、迭代器、算法、仿函数、适配器和分配器。分配器主要是用来分配内存空间的,其底层实现就是malloc。容器、迭代器和算法在前面的文章已经写过。这篇文章主要是简要分析functor和adapter。
functors
前面已经说过仿函数在算法中有着重要的应用。下面是在算法sort中调用不同仿函数的实例。
|
|
另外要注意的是在标准库中定义的仿函数都继承了unary_function(一元操作符函数)或者binary_function(二元操作符函数),这两个都只是对类型进行了定义。
adapters
stack、queue是两个典型的容器适配器。两者都是在底层上使用了别的容器,并把自己的函数封装在底层容器的函数上,相当于是为别的容器套了一个壳而已。下面是stack的源代码,应该说能比较明显地看出来其原理。
|
|
总结
到此为止,STL的主要内容应该说已经学的差不多了。侯捷老师的课程讲的确实详细,后面打算实现个简单的STL版本,以加深学习的印象。
声明
若有错误,欢迎讨论。严禁抄袭,仅用于学习。