语法上的小trick

语法上的小trick

构造函数

虽然不写构造函数也是可以的,但是可能会开翻车,所以还是写上吧。:

提供三种写法:

使用的时候只用:

注意,这里的A[i]=gg(3,3,3)的“gg”不能打括号,否则就是强制转换了。

快速读入

inline char nc(){
    static char buf[100000],*p1=buf,*p2=buf;
    return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}
inline int _read(){
    char ch=nc();int sum=0;
    while(!(ch>='0'&&ch<='9'))ch=nc();
    while(ch>='0'&&ch<='9')sum=sum*10+ch-48,ch=nc();
    return sum;
}

_read()函数返回的就是读入信息。

迭代器

对于一个迭代器it,那么它代表了一个内存位置,我们可以用*it得到它代表的值。

对于一些STL,我们可以遍历其中元素。以set为例:

int a[] = {1,2,3};
set<int> s;
set<int>::iterator it;
s.insert(a,a+3);
for(it=s.begin();it!= s.end() ; ++it)cout<<*it<<" ";

重载运算符

inline matrix operator + (matrix &a, matrix &b) {//传参直接传指针,不需要拷贝,跑的更快。
    static matrix res;//static创建了一个只能在此函数内使用的全局变量,使每次调用函数不用都开空间,节省时间。
    rep(i) rep(j) res.array[i][j] = inc(a.array[i][j], b.array[i][j]);
    return res;
}

posted @ 2019-08-08 08:33  GavinZheng  阅读(138)  评论(0编辑  收藏