
泛型编程
文章平均质量分 73
One2zeror
这个作者很懒,什么都没留下…
展开
-
Function Objects Adapter(函数对象适配器)
在讲函数对象适配器之前,让我来看看什么是适配器,广义上讲Adaper就是一种将某一接口转换为另一接口的组件。 比如某电器是欧式插头,你怎么插在国标插座上,最直观的想法就是再买个转接器转一下,没错,这个转接器就是一个Adater。 如图(生活中的Adapter) 让我来看之前文章提到的求是否是偶数的even函数,先考虑even就是普通的函数,原型为: bool even(in原创 2015-06-16 12:55:22 · 777 阅读 · 0 评论 -
set_new_handler()总结
再看STL源码时,发现内存分配时会先调用set_new_handler(0); 不知其意,故在网上搜寻了相关资料,总结如下: 函数原型: new_handler set_new_handler (new_handler new_p) throw(); new_handler类型函数将在默认内存申请函数(operator new和operator new[])申请内存失败时被调原创 2015-05-02 16:08:06 · 2861 阅读 · 0 评论 -
泛型概述
泛型程序设计是程序设计语言的一种风格或范式。允许程序员在编写代码时使用一些以后才指定的类型,在实例化时(instantiate)作为参数指明这些类型。 泛型的定义主要有以下两种: 在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义) 在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(现在人们大多把这称作模板) 不论使用那个原创 2015-04-16 20:20:07 · 653 阅读 · 0 评论 -
再论Iterator
1.value type 一般的,每个iterator都会有至少一个associatedtype,我们将iterator指向对象的类型称为value type。 那么我们应该怎样取得iterator的value type呢?对于某个iterator,我们可以通过模板指定其valuetype,但是这是这个value type和iterator是分离的,对于对个不同算法,操作起来十分不便。原创 2015-04-16 19:58:59 · 470 阅读 · 0 评论 -
算法处理和Iterator Tag
让我们来看一个简单地例子:advance函数,四种不同类型的Iterator会有不同的实现方式:// input iterator和forward iterator的版本 template <class InputIterator, class Distance>原创 2015-04-16 19:52:38 · 731 阅读 · 0 评论 -
C++泛型 && Java泛型实现机制
C++泛型 C++泛型跟虚函数的运行时多态机制不同,泛型支持的静态多态,当类型信息可得的时候,利用编译期多态能够获得最大的效率和灵活性。当具体的类型信息不可得,就必须诉诸运行期多态了,即虚函数支持的动态多态。 对于C++泛型,每个实际类型都已被指明的泛型都会有独立的编码产生,也就是说list<int>和list<string>生成的是不同的代码,编译程序会在此时确保类型安全性。由于知道对象确原创 2015-08-28 22:24:16 · 3243 阅读 · 0 评论 -
Function Objects(函数对象)
Function Objects(函数对象) 在了解函数对象的定义前,我们先来看一个例子。 我们考虑一个特殊的查找函数:template <class Iterator, class Predicate>原创 2015-04-16 19:46:27 · 532 阅读 · 0 评论