C++STL粗浅认识
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
- 点赞
- 收藏
- 关注作者
评论(0)