模板模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单...
分类:
编程语言 时间:
2016-09-08 16:25:34
阅读次数:
268
函数业务逻辑一样,只是函数参数类型不同函数模板的本质:类型参数化——泛型编程 语法: 函数模板基础: template是告诉C++编译器,开始泛型编程,看到T,不要随便报错 在使用模板时,遇到修改模板里面内容,需要清除原有方案,重新编译。 函数模板遇上函数重载: //函数模板不允许自动类型转化,严格 ...
分类:
其他好文 时间:
2016-09-08 12:44:16
阅读次数:
147
1 问题引入 首先引入一个问题,实现一个泛型的swap函数,分别使用C++和C实现。 2 C++的泛型 C++有良好的泛型编程机制,所以我很快就写出了C++版的泛型swap函数。 3 C语言的泛型 我的第一想法是既然不能直接交换变量(类型不知道),那就交换指针呀。下一瞬间,我就很想给自己一巴掌!是左 ...
分类:
编程语言 时间:
2016-09-08 00:47:36
阅读次数:
211
本篇文章主要介绍泛型算法中的变易、排序、数值算法。 一、 变易算法 所谓变易算法是指那些改变容器中的对象的操作。 1.1 copy组 template OutputIterator copy (InputIterator first, InputIterator last, OutputIterat... ...
分类:
其他好文 时间:
2016-09-01 12:49:11
阅读次数:
180
1.实现泛型特性构件pre-java5 面向对象的一个重要目标是对代码重用的支持。支持这个目标的一个重要的机制就是泛型机制:如果除去对象的基本类型之外,实现方法是相同的,那么我们就可以用泛型实现来描述这种基本的功能。 在java1.5版本以前,java并不直接支持泛型实现,泛型编程的实现是通过使用继 ...
分类:
编程语言 时间:
2016-08-27 11:20:22
阅读次数:
208
(1)定义函数模板(function template) 函数模板是一个独立于类型的函数,可以产生函数的特定类型版本。 // implement strcmp-like generic compare function template <typename T> int compare(const ...
分类:
编程语言 时间:
2016-08-25 23:55:19
阅读次数:
157
本篇文章在上一篇文章的基础上进一步介绍一些常用的容器。 一、 Stack和Queue 二、 Map Map是一种关联容器,存储的对象是键值(Key-Value)对。和Python中的字典相似。Map中的键值对永远是排好序的。 Map中所存储的键对象必须是可排序的,默认采用从小到大的排序方式。也可以通... ...
分类:
其他好文 时间:
2016-08-23 01:38:40
阅读次数:
123
在C++语法的学习过程中,我们已经对模板有了基本的了解。泛型编程就是以模板为工具的、泛化的编程思想。本篇文章介绍了一些在之前的文章中没有涉及到的一些模板知识、泛型编程知识和几种容器。关于模板的一些重复知识在这里就不再进行赘述。 一、关于模板的知识点补充 1. 函数模板的参数推导与显式指定 通常情况下... ...
分类:
其他好文 时间:
2016-08-14 13:09:32
阅读次数:
192
了解隐式接口和编译期多态 编译期多态和运行期多态 运行期多态就好比是virtual函数再运行的时候才确定该virtual函数该被绑定为哪个函数,运行的时候才确定函数类型。 编译期多态就好比是泛型编程和模板编程中,在编译的时候才确定哪个函数该被调用,根据函数的类型去确定。 显示接口和隐式接口 显示接口 ...
分类:
其他好文 时间:
2016-08-07 10:51:36
阅读次数:
169
1.使用类模板创建数组 下面这段代码:是创建一个元素为 T 类型的数组。 2.下面这段代码:是利用上面的模板创建了两个数组(一个是基本数据类型,一个是自定义的类型) ...
分类:
编程语言 时间:
2016-08-02 23:54:23
阅读次数:
271