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;
}

运行后,你将会看到:

yahoo

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