学校网站建设项目可行性分析报告,企业新闻稿发布平台,wordpress微博采集,做室内3d设计的网站文章目录什么是STLSTL版本 原始版本(HP版本) P.J.版本 RW版本 SGI版本STL六大组件 容器 算法 仿函数 空间配置器 迭代器 配接器STL缺陷什么是STL STL#xff08;standard template libaray-标准模板库#xff09;#xff1a;是C标准库的重要组成部分#xff0c;不…
文章目录什么是STLSTL版本 原始版本(HP版本) P.J.版本 RW版本 SGI版本STL六大组件 容器 算法 仿函数 空间配置器 迭代器 配接器STL缺陷什么是STL STLstandard template libaray-标准模板库是C标准库的重要组成部分不仅是一个可复用的组件库还是一个包罗数据结构与算法的软件框架。 俗话说的好不懂STL不要说你会C。C中拥有许多底层的数据结构以及算法有了STL就不需要自己造轮子了不得不承认我们大多数人都喜欢自己造轮子总觉得自己造的轮子会与众不同实际上可能还比不上别人提供的轮子。
STL版本 原始版本(HP版本) Alexander Stepanov、Meng Lee在惠普实验室完成的原始版本这一版本允许任何人任意的运用、拷贝、修改、传播、商业使用并且无需付费。唯一的条件就是修改之后的版本也需要像原始版本一样开始使用因此HP版本是当前所有STL实现版本的始祖。最牛的技术永远是开源的小声逼逼 P.J.版本 由P.J.Plauger基于HP版本开发被Windows visual C采用不能公开或修改缺陷可读性比较低符号命名很怪异。 RW版本 是Rouge Wage公司开发的也是基于的HP版本被C Builder采用不能公开或修改可读性一般。 SGI版本 由Silicon Graphics Computer SystemsInc公司开发同样是基于HP版本。被GCCLinux采用可移植性好可公开、修改甚至贩卖从命名风格和编程风格上看阅读性非常高。
STL六大组件 容器 名字非常高大上实际上就是数据结构比如string、vector、list、deque、map等。 算法 常见的有find、swap、reverse、sort、merge等。 仿函数 greater、less…… 空间配置器 一些频繁需要访问内存空间的容器由空间配置器在内存池上分配内存内存池的内存也是来源于堆上的。 迭代器 iterator、const_iterator、reverse_iterator、const_reverse_iterator。 配接器 stack、queue、priority_queue。
STL缺陷
STL库的更新很慢STL没有支持线程安全并发环境下需要自己加锁。且锁的粒度是比较大的STL极度的追求效率导致内部比较复杂STL的使用会有代码膨胀的问题这是模板语法本身导致的。