C++语法
C++语法,还有一块,泛型编程,和继承都丢的差不多了,泛型编程好像没怎么用过。。。
据说好像金融方面,C++比较缺。。。
另外今天倒腾了下Code Block,及其蛋疼,终于体会到VS debug的强大了,VS是非常好的方便debug的IDE。。。
另外发现algorithm里有merge函数,包括sort,merge其实不一定要用容器的iterator作为参数,数组指针也是一样的,但是要记住,sort(first,last), 表示的排序范围是 [first, last),
这也和iterator的 end()表示容器最后一个元素的后一个元素相吻合。
sort(begin,end,compare())里的compare函数,
bool compare(cosnt T& a,const T&b)
{
return a.data<b.data;//a<b, true, means ascending sort
}
ctsdio stdio.h 也即c*和 *.h 这两个lib的差别
后者现有,因为是里面的,后来有了C++,为了和他兼容,名字改为cstdio,内容几乎一样,只不过都在std::这个名字空间里,所以如果不加using namespace std, 会报错的,如果写C++代码建议用前者。
http://bbs.csdn.net/topics/280066862
另外今天读了一下张一博大神的代码,先不说DP算法,主要是编码风格和习惯,里面有些东西是ACMer的习惯,定义很多宏和typedef 加快后面coding的速度,包括连vector的push_back都缩写为PB了,确实这样后面的coding可以更加集中于算法,
而不是某些库函数多敲几个字母。像这种三元组丢到vector里,我绝对会定义node,里面三个成员变量,他则是用了两次pair,外加宏定义直接变为MP3了。。。
define MP3(a,b,c) make_pair( a , make_pair(b,c) )
还有long long类型的数据类型由于多了字母,后面频繁出现,因此缩写为LL是很明智的做法,也是一个typedef
typedef long long LL ;
包括还有二维数组,我一般都不会考虑vector<> a[] 这样的vector数组,或者二维数组,或者vector < vector
用下标控制也可以的。
另外还有一个小细节,我注意到了,代码里很多while里面多个,然后一个; 我一直不知道while 或者if里面,只要,隔开 都算一句,所以相当于不用括号也可以多写几个statement,我之前好像一直都没怎么尝试过这种写法。
if ( j == ZERO ) F[i][j] = 1 , G[i][j] = 0 ;
BSS段存放的是未初始化的全局和静态变量,数据段存放的是初始化后的全局和静态变量