C++STL粗浅认识

举报
ReCclay 发表于 2022/02/22 02:32:10 2022/02/22
【摘要】 STL的粗浅认识 为了解决链表(list)映射表(map)每次出现的啰嗦写法,更高效更简洁的写代码引入了STL。 STL—的引入代表着一种编程思想的产生泛型化编程(generic progr...

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.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/60871760

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。