C++泛型程序设计---算法和提升】的更多相关文章

算法和提升 算法:所谓算法就是一个求解问题的过程或公式,即,通过一个有穷的计算序列生成结果. 函数模板就是普通函数的泛化:它能对多种数据类型执行动作,并且能用以参数方式传递来的各种操作实现要执行的工作,函数模板通常也称为算法. 提升:从一个(多个可能更好)具体的实例中泛化出一个算法,使之能适用于最大(但合理)范围的实参类型,即,限制一个算法(或一个类)只依赖必要的属性. 提升算法是一个由具体到抽象的过程,最重要的一点是保持性能并注意如何做才是合理的,如果试图覆盖所有可能的类型和操作,可能会把泛化…
泛型程序设计的基本概念 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++模板为泛型编程程序设计奠定了关键的基础 模型:符合一个概念的数据类型称为该概念的模型,例如:int型是Comparable概念的模型: 静态数据类型不是Assignable概念的模型(无法用“=”给整个静态数组赋值) 用概念做模板参数名 很多STL的实现代码都是使用概念来命名模板参数的 为概念赋予一个名称,并使用这个名称作为模板参数名 表示insertionSort这样的一个函数模板的原型…
有效地利用已有的成果,将经典的.优秀的算法标准化.模块化,从而提高软件的生产率,是软件产业化的需求,为了实现这一需求,不仅需要面向对象设计思想,而且需要泛型程序设计思想. c++语言提供的标准模板库(standard template library,STL)便是对象对象程序设计和泛型程序设计(Generic Programming)思想相结合的一个良好典范. 1.泛型程序设计的概念和术语 1)泛型程序设计 泛型程序设计就是要将程序写得尽可能通用,同时并不损失效率.它的首要目标是标准容器,进而是…
泛型程序设计的基本概念 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础 术语:概念 用来界定具备一定功能的数据类型.例如: 将“可以比大小的所有数据类型(有比较运算符)”这一概念记为Comparable 将“具有公有的复制构造函数并可以用‘=’赋值的数据类型”这一概念记为Assignable 将“可以比大小.具有公有的复制构造函数并可以用‘=’赋值的所有数据类型”这个概念记作Sortable 对于两个不同的概念A和B,如果…
最近武汉的n-Cov使得大家只能在家办公了. 在家里的感受是什么样的呢? 1.上班的时候一直在奔跑,现在总算可以有集中的时间来思考一些之前一直没能好好整理的内容 2.时间变得自己可以掌控,优先级有自己掌控,暂时这一两个星期不需要为钱而奔波,感觉每天其实过得很充实 首先声明我不是什么算法高手,身边有很多算法高手太厉害了,我仅是一名考虑如何将孩子们能领入计算机正确之门的教育工作者. 最近因为要给一些孩子(5年级到初中)讲下基础算法,而且孩子肯定是需要深入浅出的,这样其实对老师是个很高的要求. 为了不…
1 意义 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用. 常见应用 : ArrayList 2 K T V E ? object等的含义 类型变量使用大写形式 E – Element (在集合中使用,因为集合中存放的是元素) T – Type(Java 类)(需要时还可以用临近的字母U和S)表示任意类型  S.U.V – 2nd.3rd.4th types K – Key(键) V – Value(值) N – Number(数值类型) ? – 表示不确定的java类型(无限制通配…
1.泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用.例如:不希望为了聚集String和Integer对象分别设计不同的类.(个人觉得此处说的聚集译为:创建一个对象,属性可以为String和Integer类型.但是却有着相同的行为或属性) 代码如下: public class StringTest { private String age; public String getAge() { return age; } public void setAge(String a…
第12章 泛型程序设计 本章内容: * 为什么要使用泛型程序设计 * 定义简单泛型类 * 泛型方法 * 类型变量的限定 * 泛型代码和虚拟机 * 约束与局限性 * 泛型类型的继承规则 * 通配符类型 * 反射和泛型 使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性. 12.1 为什么要使用泛型程序设计 泛型程序设计(Generic programming)意味着编写的代码可以被很多不同类型的对象所重用. 12.2 定义简单泛型类…
通用的(泛型)算法 之 只读算法,写算法,排序算法 只读算法: 函数名 功能描述 accumulate 求容器里元素的和 equal 比较2个容器里的元素 写算法 函数名 功能描述 fill 用给定值,覆盖给定的范围的元素 fill_n 用给定值,覆盖给定开始位置后的,n个元素变 back_inserter 在容器末尾插入元素 copy 把容器1指定范围里的值拷贝给容器2,并返回指向容器2最后一个元素的下个元素 replace 用某个值替换掉给定范围的某个值 replace_copy 用某个值替…
通用的(泛型)算法 generic algorithm 总览 特性: 1,标准库的顺序容器定义了很少的操作,比如添加,删除等. 2,问题:其实还有很多操作,比如排序,查找特定的元素,替换或删除一个特定值等,但是标准库并未给每个容器都定义成员函数来实现这些操作. 3,解决办法:因为算法是相同的逻辑,只是进行运算的元素的类型是不同的.所以定义了一组与类型无关的通用的(泛型)算法:generic algorithm.它们实现了实现了上述标准库未提供的操作. 4,好处:不用为每个容器实现上述的操作. 大…