STL记录
STL
sstream
include
用 stringstream将不同数据类型变量转换成string型
cout格式化输出:
使用fixed,showpoint,setprecision
setprecision
作用:控制输出流显示浮点数的数字个数,setprecision(n)就是输出的n个数,会有四舍五入。
showpoint
小数部分末尾为0时,是输不出来的!要想输出来,就得用showpoint了.
setprecision与fixed
用于保留几位小数
语法:在输出语句前声明:cout.setf(ios::fixed);
比如:double s=20.7843909,代码如下:
cout.setf(ios::fixed);
cout<<setprecision(1)<<s<<endl; //输出2.8
cout<<setprecision(2)<<s<<endl; //输出21.78 多个点
cout<<setprecision(3)<<s<<endl; //输出20.784
cout<<setprecision(6)<<s<<endl; //输出20.784391
cout<<setprecision(7)<<s<<endl; //输出20.7843909
cout<<setprecision(8)<<s<<endl; //输出20.78439090
setiosflags() 算子
setiosflags() 算子实际上是一个库函数,它以一些标志作为参数,这些标志可以是在 iostream 头文件中定义的以下几种取值,它们的含义和同名算子一样。
| 标 志 | 作 用 |
|---|---|
| ios::left | 输出数据在本域宽范围内向左对齐 |
| ios::right | 输出数据在本域宽范围内向右对齐 |
| ios::internal | 数值的符号位在域宽内左对齐,数值右对齐,中间由填充字符填充 |
| ios::dec | 设置整数的基数为 10 |
| ios::oct | 设置整数的基数为 8 |
| ios::hex | 设置整数的基数为 16 |
| ios::showbase | 强制输出整数的基数(八进制数以 0 开头,十六进制数以 0x 打头) |
| ios::showpoint | 强制输出浮点数的小点和尾数 0 |
| ios::uppercase | 在以科学记数法格式 E 和以十六进制输出字母时以大写表示 |
| ios::showpos | 对正数显示“+”号 |
| ios::scientific | 浮点数以科学记数法格式输出 |
| ios::fixed | 浮点数以定点格式(小数形式)输出 |
| ios::unitbuf | 每次输出之后刷新所有的流 |
| ios::stdio | 每次输出之后清除 stdout, stderr |
| 这些标志实际上都是仅有某比特位为 1,而其他比特位都为 0 的整数。 |
fill and memset
- fill(头迭代器,尾迭代器,值)
- memset(void *s, int v , size_t n )
elemtype num[maxn]={1};数组全部初始化为1
ctype.h
isdigit(int ch) 是数字返回非零,否则返回0
isalpha(int ch) 是字母返回非零,否则返回0
isalnum(int ch) 是数字或字母返回非零,否则返回0
islower(int ch) 是小写字母返回非零,否则返回0
isupper(int ch) 是大写字母返回非零,否则返回0
int tolower(int ch) 返回大写字母的小写形式
int toupper(int ch) 返回小写字母的大写形式
cstring
int strcmp(const char*s1,const char *s2) 比较字符串s1,s2,s1=s2时返回0,s1<s2时返回负值,s1>s2时返回正值
void memset(void *s,int ch,size_t n) 用ch填充s中的n个字节,用于对数组的快速初始化,通常初始化为0或1
char *strcpy(char *dest,const char *src) 将含有结束符的字符串src复制到dest中(dest要有足够的空间),并返回指向dest的指针
unsigned int strlen(char *s) 返回截止到结束符的字符串s的长度
algorithm
max(a,b) 返回a,b中较大的那一个
min(a,b) 返回a,b中较小的那一个
abs(a) 返回a的绝对值,a必须为整型,浮点型需要用math.h下的fabs
swap(a,b) 交换a,b的值
reverse(a,a+n) 将a中元素倒序,一般用于数组,template的方法暂时还不会用-_-,a为数组首地址,n为数组长度
fill(a,a+n,value) 将[a,a+n)的元素填充值value,可用template,memset一般填1或0,这个可以填充其他值
sort(a,a+n,f) 将[a,a+n)中的元素按照比较函数f进行排序,可用template
lower_bound(a,a+n,key) 返回[a,a+n)中第一个大于等于key的位置,如果所有元素小于key,返回末地址,末地址是正好越界的!查找方法为二分查找!
upper_bound(a,a+n,key) 返回[a,a+n)中大于key的第一个位置,没找到返回末地址,末地址正好越界!查找方法为二分查找!
max_element(a,a+n) 查找[a,a+n)最大值所在地址
min_element(a,a+n) 查找[a,a+n)最小值所在地址
cmath
ceil(x) 对x向上取整
floor(x) 对x向下取整
fabs(x) 返回x的绝对值
sqrt(x) 返回x的开方
pow(x,y) 返回x的y次方
round(x) 将x四舍五入取整
sin(x),cos(x),tan(x) x为弧度制的角度
asin(x),acos(x),atan(x)
log(x) 返回以自然指数为底的x的对数

浙公网安备 33010602011771号