范型编程
来源:互联网 发布:python 金融数据 编辑:程序博客网 时间:2024/06/07 02:00
范型编程(generic programming,GP) :编写不依赖数据类型的程序,数据类型的参数化。
#include<algorithm>
find(iarray,iarray+SIZE,50);
find(intVector.begin(),intVector.end(),50);
对于上面的find函数来说,它是algorithm库中的一个函数,其实它是一个算法的实现,它可以针对数组、向量等做查找操作。
一般的算法都是作用在特定的数据结构上,而范型设计的根本思想就是想把算法和其作用的数据结构分离。范型设计的理想状态是算法是通用的,泛型的,可以作用于数组,链表,树,图等各种数据结构之上。
实现范型编程的途径:
1.利用模板,数据类型参数化
2. 多态
STL是c++中范型编程的实现:
STL是一些容器---------list,vector,set,map等的集合
STL是算法和其他一些组件的集合
STL中的主要组件:
container 容器
algorithm算法
iterator迭代器
函数对象(function object)
STL将算法和数据结构完全分离,其中算法是范型的,不与任何特定数据结构或对象类型联系在一起。
对于上面的程序来说,如果查找到数据那么intlter就会返回查找到的数据的位置;但是如果没有查找到的话,intlter就会返回向量中最后的元素的后面的位置。find查找的范围实际上是从intVectot.begin()到intVector.end()之前的这一范围。
vector容器类实例:
vector<int> v1;//定义了一个vector容器类,此时v1是空的
vector<int>::iterator iter;//定义了一个vector容器类的迭代器
- 100多种编程语言学什么?编程范型/编程范式
- 什么是范型编程
- C# 范型编程
- 什么是范型编程
- 什么是范型编程
- 范型编程杂谈
- 范型编程杂谈
- 理解编程范型
- 范型编程
- C++编程范型浅谈
- Java编程之范型
- Boost中的范型编程技术
- 关于范型编程的风格
- java 范型编程的简单测试。
- 王老师 c范型编程举例
- 全新的软件编程范型
- 基于范型的多语言编程
- 基于范型的多语言编程
- 欢迎使用CSDN-markdown编辑器
- Vivado Synthesis中如何为Verilog代码中的“include file”设置路径?
- 矩阵快速幂<求有向图路径为k的方案(每条边可以取多次)>
- 属性图和ASCII,找了很久,放起来随时用
- liunx 添加tomcat 开机启动
- 范型编程
- 变参日志函数
- 使用 IP example design
- Android多媒体--MediaCodec api
- 实现桌面应用图标的动态隐藏和显示,触发事件为SIM卡的状态
- 记得在执行循环命令时,一定要用unset()清内存,不然你的内存会不够用的!
- mybatis-generator 自动生成mapper,结合maven
- XML 文件详解【命名空间】
- 自动化测试工具TestWriter免费版发布最新Beta版本