1.识别空行。
gets(string), if(strlen(string)==0)则是空行
2.结构体的初始化函数可以放在结构体中,这样可以方便地根据需要对某一个节点进行初始化
3.常见简写:ans(answer),cnt(count),idx(index,下标),init(initial),str(string),pos(position,位置)
4.生成随机数简单的方法:
#include <iostream> #include <cstdlib> using namespace std; int main() { for(int i=0;i<5;i++) cout<<rand()<<" "; return 0; }但rand()总以1为种子,种子固定,产生的随机数总为同一序列的随机数。上面的程序每次执行的结果都是一样的,在我的机子上都是:41 18467 6334 26500 19169。但是rand()还是可以满足某些需求的,比如测试排序STL 的priority_queue的top为最大项时可以通过rand()生成随数检测。
功能更强大的是srand,网上资料很多,此处不表。
5.判断一个数是否整数:有double型数据m,(int)(m+0.5) == m为真则m是整数;注意(int)m == m 可能会带来错误,因为计算机执行运算的时候可能会出现误差
6.复制数组:使用memcpy,头文件string.h。
例程:
#include <iostream> #include <cstring> using namespace std; int main() { int a[5]={0, 1, 2, 3, 4},b[5]={0}; memcpy(a, b, sizeof(int)*3); for(int i=0; i<5; i++) cout<<a[i]<<" "; memcpy(a, b, sizeof(b)); for(int i=0; i<5; i++) cout<<a[i]<<" "; return 0; }
结果:0 0 0 3 4 0 0 0 0 0
7.模板
#include <iostream> #include <string> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <map> #define LL long long #define MAXI 2147483647 #define MAXL 9223372036854775807 #define eps (1e-8) #define dg(i) cout << "*" << i << endl;