1、流 尽量提高可读性,避免撰写精简代码 在c++中,有四种方法获得多态行为:虚函数、模板、重载和转换2、predicates:状态带来的问题3、可扩充的模板:使用继承还是traits?4、typename5、容器、指针和“不是容器的容器”6、使用vector和deque7、使用set和map .....
分类:
编程语言 时间:
2014-11-18 23:18:43
阅读次数:
204
模板是实现代码重用机制的一种工具,实质就是实现类型参数化,即把类型定义为参数。C++提供两种模板:函数模板,类模板。template //或者 templateT my_max(T a, T b){ return a>b ? a : b;}template //或者 te...
分类:
其他好文 时间:
2014-11-15 16:51:38
阅读次数:
228
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(linker, "/STACK:1024000000");
#define EPS (1e-6)
#define LL long long
#de...
分类:
其他好文 时间:
2014-11-13 20:55:14
阅读次数:
136
C++中的高阶手法就会用到泛型编程,主要有函数模板, 在程序中使用模板的好处就是在定义时不需要指定具体的参数类型,而在使用时确可以匹配其它任意类型, 定义格式如下template T func(T ...) {}让我们来看一个简单例子,写一个swap()将两个整数交换位置,void swap(int...
分类:
编程语言 时间:
2014-11-05 01:46:21
阅读次数:
186
在类模板中可以出现三种友元声明:(1)普通非模板类或函数的友元声明,将友元关系授予明确指定的类或函数。(2)类模板或函数模板的友元声明,授予对友元所有实例的访问权。(3)只授予对类模板或函数模板的特定实例的访问权的友元声明。(1)普通友元:templateclass A{ friend void f...
分类:
编程语言 时间:
2014-10-29 19:17:39
阅读次数:
226
---恢复内容开始---感觉C++ templates这本书写的不怎么好,挑写重点记一下:1 与函数模板一样,只能在同一个头文件中声明和定义类。类模板的声明类模板的声明和函数模板的声明很相似:在声明之前,我们先(用一条语句)声明作为类型参数的标志符;我们继续使用T作为标志符;template cla...
分类:
其他好文 时间:
2014-10-29 18:57:18
阅读次数:
282
对于函数模板与类模板,模板参数并不局限于类型,普通值也可以作为模板参数。在基于类型参数的模板中,你定义了一些具体的细节来加以确定代码,直到代码被调用时这些细节才被真正的确定。但是在这里,我们面对的是这些细节是值,而不是类型,当要使用基于值的模板时,必须显式地指定这些值,才能够对模板进行实例化。非类型...
分类:
其他好文 时间:
2014-10-29 18:27:01
阅读次数:
151
面向对象编程(OOP)和泛型编程都能处理在编写程序时不知道类型的情况。不同之处在于:OOP能处理类型在程序运行之前都未知的情况;而在泛型编程中,在编译时就能获知类型了。
分类:
其他好文 时间:
2014-10-29 10:38:38
阅读次数:
2346
函数模板函数模板是那些被参数化的函数,它们代表的是一个函数家族。初探函数模板函数模板提供了一种函数行为,该函数行为可以用多种不同的类型进行调用;也就是说,函数模板代表一个函数家族。它的表示(即外形)看起来和普通的函数很相似,唯一的区别是函数元素是未确定的:这些元素将在使用时被参数化。定义模板下面是一...
分类:
其他好文 时间:
2014-10-28 23:35:12
阅读次数:
339
题目意思:
有一个序列a[17]=(1,4,9.....,i*i,17*17),对于给出的数字n,求出用给定的序列组合成n的个数。
http://acm.hdu.edu.cn/showproblem.php?pid=1398
题目分析:
该题可以用母函数模板或者DP
DP转化方程 if(dp[j]==1) dp[j+i*i]=1;//记录是否可以到达
...
分类:
其他好文 时间:
2014-10-27 10:51:43
阅读次数:
229