算法笔记学习Part1:C/C++快速入门

知识杂记

  1. int 类型的使用范围:一般在 10^9 以内
  2. long long 类型赋大于 2^31-1 的初值需要加后缀 LL
  3. \0 代表 NULL
  4. 关于移位运算符的使用(略)
  5. 在printf输出时,可以采取一些手段规范输出格式:
    %md 右对齐输出,用空格补齐
    %0md 右对齐输出,用0补齐
    %.mf 保留m位输出,四舍六入五成双
  6. 可以使用 getchar 和 putchar 读取和输出字符 (getchar可识别换行符,在putchar输出时自动换行)(getchar需要手动输入\0)
  7. 常用的math函数
	double fabs(double x) 取绝对值
	double floor/ceil(double x) 想上取整和向下取整
	double pow(double r, double p) 返回r的p次方
	double sqrt(double x) 返回x的算术平方根
	double round(double x) 返回x四舍五入结果
	//其他:三角函数系列———sin,cos,tan,asin,acos,atan
  1. 较大的数组应当定义在main函数之外
  2. 使用memset函数初始化数组(需要引入string.h):
	memset(a,0,sizeof(a));//将数组a中元素全部初始化为0(推荐0或-1)
  1. 常用字符函数
	strlen(str) 获得字符串长度
	strcmp(str1,str2) 按照字典序比较字符串大小(从左到右直到出现不同字符或\0为止),返回负整数/0/正整数
	strcpy(str1,str2) 复制字符串str2到str1
	strcat(str1,str2) 拼接字符串str1和str2,将str2追加到str1结尾
  1. 可以使用sscanf和sprintf处理字符串(支持正则表达式)
  2. C++中的引用——不产生副本,对原变量起别名
  3. 关于结构体struct:可自定义自身类型的指针变量,可使用构造函数初始化
  4. C++中的另一种输入输出:cin和cont(需要引入iostream和命名空间std)
  5. 浮点数由于可能产生的误差需要手动引入一个极小数eps来进行比较:
	const double eps = 1e-8
	#define Equ(a,b) ((fabs((a)-(b))) < (eps))
	#define More(a,b) (((a)-(b)) < (eps))
	#define Less(a,b) (((a)-(b)) < (-eps))
	#define MoreEqu(a,b) (((a)-(b) > (-eps))
	#define LessEqu(a,b) (((a)-(b) < (eps))
  1. 圆周率π:
	const double PI = acos(-1.0);
  1. scanf == EOF表示输入结束(等效于输入Ctrl+Z)
  2. 多点输入控制:
	1.scanf(...) == n || EOF//控制数据输入组数
	2.break//脱出switch或循环结构
	3.int T;T--;//控制空行或空格

你可能感兴趣的:(算法学习)