STL 1: GP(泛型编程)及STL的由来
来源:互联网 发布:知乎不能搜索 编辑:程序博客网 时间:2024/04/28 13:23
软件发展至今,大概经历了一下一些历程:
1. Procedure-Oriented(面向结构)
抽象出Procedure(Function)的概念,把程序分成若干个子过程。将事物的方法隐藏于各个函数内--C语言。
适用于处理小型的程序。对大型程序,子程序之间关系复杂,不易处理变化的需求--引发软件危机的原因--需要新的抽象。(耦合度高,变化总是存在的)
2. 基于对象(Object-Based)的抽象
基于对象(Object-Based)的抽象
引入抽象数据类型(ADT,Abstract Data Type)。C++的类,将事物的属性与方法紧密地结合在一起--VB、带类的C
与面向过程相比,可以更好地处理变化,一定程度上化解了软件危机。但各个类之间的关系不容易处理,而且程序代码数量比面向过程时更大--需要新的抽象。
Class person {
Private:
Char* name;
Public:
Char* GetName();
};
----高内聚,低耦合
3. 面向对象(Object-Oriented)的抽象
抽象出封装、继承、多态( polymorphic )的概念。
与基于对象相比,有更多的间接性。运用多态,我们可以调用某种方法,而不用指定此方法所属的类型。因而达到更进一步的抽象性。
它为我们带来了什么?--MFC(用面向对象技术封装Windows API,抽象出一个类体系)
对用户封装了具体的类型,用户只需和抽象类打交道(多态)
4. 泛型(Generic)的概念
Generic是一种抽象 就如 OO是一种抽象。
它为我们带来了什么?--STL。
STL抽象的是什么?
有些算法并不依赖于数据结构的特定实现,而只是依赖于该结构的几个基本的语义属性.
STL抽象出这些基本属性(Concept),成功的将算法与数据结构分离,在没有效率损失的前提下,得到了及大的弹性。
Vector<int> ivec;
Deque<int> ideque;
Sort(ivec.begin(),ivec.end());
Sort(ideque.begin(),ideque.end());
用一个泛型算法可以处理多种数据结构。而且在获得弹性的同时运行效率上和以前相比没有损失。
- STL 1: GP(泛型编程)及STL的由来
- 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系
- 泛型编程STL
- STL泛型编程
- STL & GP
- STL源码分析之泛型算法由来
- STL与泛型编程<十七>:STL算法简介及for_each()算法
- STL 泛型编程 (三) 队列
- STL与泛型编程(1)---模板
- 泛型编程与STL
- 泛型编程与STL
- STL与泛型编程
- 泛型编程--STL是什么
- STL与泛型编程
- 模板,泛型编程,STL
- 泛型编程与STL
- c++stl泛型编程
- 《泛型编程与stl》
- Windows自启动程序十大藏身之所(转自CSDN)
- axis2中传递数组
- Visual C++编译器常用选项设置
- sharepoint开发模式
- Windows 注册表(NT4兼容格式)
- STL 1: GP(泛型编程)及STL的由来
- About Search & DP
- js包含js文件
- C#是否有自己的类库
- ORACLE9i DBCA创建模板参数对比
- IIS出现问题,没有权限
- 如何从优秀的程序员成为伟大的程序员
- 课堂顶嘴大全
- 关于rootkit和anti-rootkit的一些思考(2)