C++ SLT标准模板简介
STL全称是standard template libaray 标准模板库,这个库是C++库中十分重要的一部分,里面涵盖可复用的组件库,而且是一个包罗了数据结构与算法的软件框架。
STL各主要版本
stl库最初是由Alexander Stepanov、Meng Lee在惠普工作室中完成的原始版本,本着开源精神,他们声明允许任何人任意运用,拷贝,修改,传播甚至商业使用这些代码无需付费,唯一条件就是像原始版本一样也需要开源使用。HP版本是STL库的实现版本的始祖。
windows visual c++:PJ版本由P.J.Plauger开发,继承自HP版本,不能公开或修改,可读性较低,符号命名比较怪异。
c++ Builder:RW版本由rouge wage公司开发继承自HP版本,不能公开或修改可读性一般。
GCC:SGI版本由Silicon Graphics Computer Systems,Inc公司开发,继承自HP版本,可移植性好,可公开,修改甚至贩卖,从命名风格和编程风格上看阅读性很高。
SLT六大组件
仿函数:类中定义的一个operator()括号运算符的重载,使用上类型函数一样
空间适配器:相当于一个内存池,当需要申请空间时可以直接从内存池中获取空间。
算法:一些比较常用的算法都会包含在SLT里面需要时直接调用即可,如sort是快排,在重复度不高的数组中非常好用。
容器:存储数据的方式如string就是模拟C语言中的字符串实现的,其本质是一个类,里面使用一个字符数组存储一个字符串。功能实用性会比单纯的字符串好用。
迭代器:参考C语言中指针使用方法,底层实现大部分也都是指针,但是对指针进行封装,提高指针的安全性。
配接器:也叫容器适配器,是一种数据结构,从上图中可以看到stack,queue分别是栈和队列。
STL就是以上述的组件为原型制作的一系列模板(大部分,还有其他如输入输出库),里面有一些是类模板,结构体模板,函数模板等都是为了在C的基础上更好的使用不用每个功能组件都自己手动写出来能有一个通用的模板大大的提升了编程的效率。