C++STL粗浅认识

    xiaoxiao2021-03-25  140

    STL的粗浅认识

    为了解决链表(list)映射表(map)每次出现的啰嗦写法,更高效更简洁的写代码引入了STL。

    STL—的引入代表着一种编程思想的产生泛型化编程(generic programming) 同时也引入了诸多名词,比如

    需求(requirements)、概念(concept)、模型(model)、容器(container)、 算法(algorithmn) 迭代器(iterator)

    编程语言的发展无不体现着一种贯穿始终的思想即是:reusabilit(可复用性) 所以才有了一次又一次简洁高效的创新

    C++中的主要两类思想GP(泛型化编程)和OOP(面向对象的编程) 所以说c++并不是一门单纯的面向对象语言。 其实GP和OOP本质上来讲是有很大区别的:

    GP

    在STL 的背后蕴含着泛型化程序设计(GP)的思想,在这种思想里,大部 分基本算法被抽象,被泛化,独立于与之对应的数据结构,用于以相同或相近的方式处理各种不 同情形。

    OOP

    这一思想和面向对象的程序设计思想(OOP)不尽相同,因为,在OOP 中更注重的是对数据的抽象, 即所谓抽象数据类型(Abstract Data Type),而算法则通常被附属于数据类型之中。 几乎所有的事情都可以被看作类或者对象(即类的实例),通常,我们所看到的算法被 作为成员函数(member function)包含在类(class)中,类和类则构成了错综复杂的继承体 系。

    C++并不是一种纯面向对象的程序设计语言,它的绝妙之处,就在于既满*足了 OOP ,* 又成全了 GP。对于后者,模板立下了汗马功劳。另外,需要指出的是,尽管 GP 和 OOP 有诸多不同,但这种不同还不至于到”水火不容”的地步。并且,在实际运用的时候,两者的结合使用往往可以使问题的解决更为有效。作为 GP 思想实例的 STL 本身便是一个很好的范例,如果没有继承,不知道 STL 会是什么样子,似乎没有人做过这样的试验。

    ReCclay 认证博客专家 嵌入式软件开发 机器/深度学习 全栈技术学习者 大家好,我是博主ReCclay,目前处于研究生阶段,就读于电子科技大学,主攻方向为汽车辅助驾驶算法研究。入站以来,凭借坚持与热爱,以博文的方式分享所学,截止目前累计博文数量达800余篇,累计受益人次达130w+次,涉及领域包括但不限于物联网开发、单片机开发、Linux驱动开发、FPGA开发、前/后端软件开发等。在未来我将继续专注于嵌入式相关领域,学习更多的科技知识,输出更高质量的博文。
    转载请注明原文地址: https://ju.6miu.com/read-2262.html

    最新回复(0)