说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。
C++类模板的三种特化
C++11 随机数库
简介
之前,C++中的随机数生成都依赖于一个简单的rand函数。这个函数产生一定范围内的一个均匀随机整数。如果需要其他随机分布或者其他范围的随机数,就需要根据rand函数产生的随机数进行再加工,不过这时,就容易引入非随机性了。
462 字节 C 代码实现雅虎 logo ACSII 动画
#include <stdio.h>
#include <math.h>
#include <unistd.h>
int c,p,i,j,n,F=40,k,m;
float a,x,y,S=0,V=0;
void main()
{
for(;F--;usleep(50000),F?puts("x1b[25A"):0)
{
for(S+=V+=(1-S)/10-V/4,j=0;j<72;j+=3,putchar(10))
{
for(i=0;x=S*(i-27),i++<73;putchar(c[" ''".$u$"]))
{
for(c=0,n=3;n--;)
{
for(y=S*(j+n-36),k=0,c^=(136*x*x+84*y*y<92033)<<n,p=6,m=0;m<8;
k++["<[]O=IKNAL;KNRbF8EbGEROQ@BSX""XtG!#t3!^"]/1.16-68>x*cos(a)+y*sin(a)?k=p,p="<AFJPTX"[m++]-50:k==p?c^=1<<n,m=8:0)
{
a=(k["O:85!fI,wfO8!yZfO8!f*hXK3&fO;:O;#hP;"i[by asloane"]-79)/14.64;
}
}
}
}
}
return;
}
运行后,你将会看到:

它是一个 20fps、抗锯齿的 Yahoo! logo ASCII 动画。如果你想自己弄清楚它是如何工作的,那么可以忽略下面的内容。否则,请往下读。