<C>
数组:
#include<string.h>
memcpy(b,a,sizeof(int)*k) copy a中k个到b中;
memcpy(b,a,sizeof(a)) 把a copy给b;
memset(a,0,sizeof(a)) 把a 清零;
字符串:
#include<string.h>
sprintf(s,"%d",a) 把数字a 化为字符串;
sscanf(s,"%d",&a) 把字符串赋值给a ;
strchr(s,a) 在s中查找a ,返回第一次出现a 的位置or NULL;
strcpy(a,b) 复制b 到 a;
strcmp(a,b) 比较a,b的大小,返回a-b;
strcat(a,b) 连接a,b返回a所指地址;
字符:
#include<ctype.h>
isalpha(ch) 检查是否为字母,返回1 or 0;
isdigit(ch) 检查是否为数字,返回1 or 0;
isalnum(ch) 检查是否为字母or数字,返回1 or 0;
islower(ch)/isupper(ch) 检查是否为小写/大写字母,返回1 or 0;
ispunct(ch) 检查是否为标点字符,返回1 or 0;
isspace(ch) 检查是否为空格,制表符,换行符,返回1 or 0;
tolower(ch)/toupper(ch) 转为小写/大写字母,返回1 or 0;
函数:
#include<math.h>
floor(double x)/ceil(double x) 取 x 的上界/下界整数;
sqrt(int x) 对 x 开方;
abs(int x) (整数)返回绝对值;(实数)if(x<0) x=-x;
pow(x,y) x 的 y 次方;
<C++>
using namespace std;
输入输出流:
#include<iostream>
cin>> 输入;
cout<< 输出;
#include<cstdio> 同<C> ,<C>中头文件去 .h 并在前面加上 c ,则可以在<C++>中兼容;
#include<cstring>
STL队列:
#include<queue>
queue<int> q; 定义队列;
q.push(a) 将a 加入队尾;
if(q.empty()) 判断队列是否为空;
q.front() 队首元素;
q.pop() 移除第一个元素;
#include<stack>
stack<int> s; 定义栈;
s.push(a) 将a 加入栈顶;
if(s.empty()) 判断栈顶是否为空;
s.top() 栈顶元素;
s.pop() 移除栈顶元素;
#include<algorithm>
sort(v,v+n) 将数组v 的前n 个排序(从小到大);
lower_bound(v,v+n,a) 上界指针,指向v中出现的第一个a的位置L;
upper_bound(v,v+n,a) 下界指针,指向v中出现的最后一个a的位置R;
则a在v中出现的子序列为[L,R);
个数为 upper_bound(v,v+n,a)-lower_bound(v,v+n,a);