手机网站转app开发教程,深圳创业补贴2023,百度搜索不到自己的网站,华为企业邮箱#x1f9d1;#x1f393;个人主页#xff1a;简 料 #x1f3c6;所属专栏#xff1a;C #x1f3c6;个人社区#xff1a;越努力越幸运社区 #x1f3c6;简 介#xff1a;简料简料#xff0c;简单有料~在校大学生一枚#xff0c;专注C/C/GO的干货分… 个人主页简 料 所属专栏C 个人社区越努力越幸运社区 简 介简料简料简单有料~在校大学生一枚专注C/C/GO的干货分享立志成为您的好帮手 ~ C/C学习路线 (点击解锁)❤️C语言 ❤️初阶数据结构与算法❤️C❤️高阶数据结构❤️Linux系统编程与网络编程 文章目录 前言什么是STLSTL的版本STL的六大组件STL的重要性如何学习STLSTL的缺陷写在最后 前言 STL是C标准库的一部分它在C程序中扮演着重要的角色。它使用模板template来实现各种数据结构包括序列容器、关联容器、无序容器等并提供相应的迭代器、算法、适配器、仿函数等部件。这些部件可以用来实现各种复杂的数据结构和算法从而大大简化了程序员的编程工作。 在C中stl的位置非常核心它几乎渗透在C程序的角角落落里。无论是开发底层系统还是开发上层应用stl都扮演着不可或缺的角色。它不仅提供了高效的数据结构和算法还提供了一种标准化的编程模式使得程序具有良好的可读性、可维护性和可重用性。 总之stl在C中的位置非常重要它是C标准库的核心组成部分为程序员提供了强大的工具和资源帮助程序员编写高质量、高效率的程序。 本章将带你快速了解STL接下来就来认识认识一下STL吧~ 什么是STL 前言部分大致说的差不多了这里就不多说了~ STL(standard template libaray-标准模板库)是C标准库的重要组成部分不仅是一个可复用的组件库而且是一个包罗数据结构与算法的软件框架。 STL的版本 原始版本 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版 本。被GCC(Linux)采用可移植性好可公开、修改甚至贩卖从命名风格和编程 风格上看阅读性非常高。我们后面学习STL要阅读部分源代码主要参考的就是这个版本。 STL的六大组件
STL的六大组件分别是
容器containers如vector、list、deque、set、map等用来存放数据。从实现的角度看stl容器是一种类模板。算法algorithms如sort、search、copy、erase等。从实现的角度看stl算法是一种函数模板。迭代器iterators扮演容器与算法之间的胶合剂是所谓的“泛型指针”。从实现的角度看迭代器是一种将operator*、operator-、operator、operator–等指针相关操作予以重载的类模板。仿函数functors行为类似函数可以作为算法的某种策略。仿函数是一种重载了operator()的类或类模板。适配器adapters一种用来修饰容器、仿函数、迭代器接口的东西。配置器allocators负责空间配置与管理。
这六大组件可以彼此组合套用以实现更复杂的功能。 STL的重要性
在笔试中会有几道算法题这时候使用C的小伙伴就不得不使用STL来提高效率了~在面试中面试官经常会问到关于STL的知识所以熟练STL的小伙伴可是加分项噢~在工作中网上有句话说“不懂STL不要说你会C”。STL是C中的优秀作品有了它的陪伴许多底层的数据结构以及算法都不需要自己重新造轮子站在前人的肩膀上健步如飞的快速开发。 如何学习STL
摘
简单总结一下学习STL的三个境界能用明理能扩展 。 STL的缺陷
STL库的更新太慢了。这个得严重吐槽上一版靠谱是C98中间的C03基本一些修订。C11出来已经相隔了13年STL才进一步更新。STL现在都没有支持线程安全。并发环境下需要我们自己加锁。且锁的粒度是比较大的。STL极度的追求效率导致内部比较复杂。比如类型萃取迭代器萃取。STL的使用会有代码膨胀的问题比如使用vector/vector/vector这样会生成多份代码当然这是模板语法本身导致的。 写在最后 本章主要是给大家介绍C当中的标准模板库STL只要你用C那必然脱离不了STL的存在他的重要性是毋庸置疑的。最后用上文的一段文字来结尾网上有句话说“不懂STL不要说你会C”。STL是C中的优秀作品有了它的陪伴许多底层的数据结构以及算法都不需要自己重新造轮子站在前人的肩膀上健步如飞的快速开发。 ❤️后续将会继续输出有关C的文章你们的支持就是我写作的最大动力 感谢阅读本小白的博客错误的地方请严厉指出噢~