1,重载函数模板f<int*>((int*)pi);//1f<int>((int*)pi);//2上面用int*替换第一个模板的T,用int来替换第二个模板的T。那么将得到两个相同参数类型(int*)的同名函数。也就是不仅同名模板可以同时存在,它们各自具有相同参数类型和返回类型的实例化体也可以同时存 ...
分类:
其他好文 时间:
2016-10-05 07:16:17
阅读次数:
142
关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 就是通常意义上的继承,是一般和特殊的关系,子类特化了父 ...
分类:
其他好文 时间:
2016-09-29 21:18:13
阅读次数:
87
第一章 归纳(induction):特殊到一般的“泛化”过程,generalization,从具体的事实归纳出一般性规律 演绎(deduction):从一般到特殊的“特化”过程,specialization,从基础原理推演出具体情况。 有归纳偏好:满足条件的模型很多,选择哪个呢? 第二章 过拟合ov ...
分类:
其他好文 时间:
2016-09-01 16:23:04
阅读次数:
162
模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。 模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。 那么下面3句依次调用类模板、全特化与偏特化: 对于函数模 ...
分类:
其他好文 时间:
2016-08-25 21:11:05
阅读次数:
158
1.编译器断言 技巧大致跟后面的一样,都是利用偏特化,但是在C++ 0X里面已经有static_assert,所以感觉这东西也没什么用处了,更多的只是开阔眼界 2.偏特化 就是专门对一个类型去进行特殊的处理,毕竟template会给生成所有的类型相同的操作,但是有时候我们需要对特定的几个类型去处理, ...
分类:
编程语言 时间:
2016-07-25 09:18:40
阅读次数:
236
C++模板的特化与偏特化最近在看STL的过程中,发现自己对于模板这里的知识有所生疏,因此今日将这部分内容再做整理,以备后忘。关于C++模板的概念这里不再赘述,默认读者已经具备基础知识。模板的特化先看一段代码:#include<iostream>
usingnamespacestd;
template<c..
分类:
编程语言 时间:
2016-06-30 23:38:24
阅读次数:
376
在之前的理论上调用对象的operator=是这样做的 上面的代码看起来有点麻烦,但它是一个好办法。 我们可以在std里面特化我们的swap 当class也是template以后再说 ...
分类:
编程语言 时间:
2016-06-19 22:57:39
阅读次数:
177
c++标准为处理二进制数值提供了两个工具:vector和bitset。
vector是对元素类型为bool的vector特化,它的内部并不真正存储bool值,而是以bit来压缩保存、使用代理技术来操作bit,造成的后果就是它很像容器,大多数情况下和标准容器一致,但它不是容器,不满足容器的定义。
bitset与vector类似,同样存储二进制位,但它的大小固定,而且比vec...
分类:
其他好文 时间:
2016-06-12 02:31:37
阅读次数:
291
主类模板Stack,使用vector构建,实现栈的功能。template
class Stack {
private:
std::vector elems;
public:
void push(T const &elem){
elems.push_back(elem);
}
void pop(){
if(...
分类:
其他好文 时间:
2016-05-13 01:17:25
阅读次数:
190