STL笔记(-)
STL(Standard Template Library)C++标准模板库,泛型库。使用模板技术实现的通用程序库,提供的数据结构和算法具有泛化形式,不依赖于某个具体的数据结构,体现软件代码的重用性,保证代码具有相当高的执行高效性。C++STL库以编译时库的方式提供给编译器进行编译,十分容易进行代码的扩充和修改。
具现:
一程序应用STL的模板类或函数,必须通过include将对应的STL文件包含。编译时,每发现一个STL调用,就会从include文件中找到对应的STL源码插入程序进行置换,同时将其模板用调用时传入的C++类型替换,转换为非模板的C++程序继续余下的编译处理。
注:由于C++STL使用模板进行编程,一个模板类的多个对象创建和一个模板算法函数的多次调用,都会让编译器具现出重复的代码,以至C++STL程序代码膨胀到不可接受的地步,引发所谓的代码风暴,消耗大量的编译时间甚至引起陈旭的多次磁盘I/O,使程序执行速度大为减慢。
显示类型转换:
编译时转换:
reinterpret_cast<new_type>(express):指针类型转换
const_cast<new_type>(express):去掉常量属性
static_cast<new_type>(express):普通类型和继承间类型 (可:继承类->基类对象 反向不可 无继承关系也不可)
运行时转换:
dynamic_cast<new_type>(express):指针和引用类型间转化 (指针转换失败返回null 引用转换失败抛出bad_cast异常)