今天水一期,随便写的。
头文件:
#include <bits/stdc++.h>
常量:
const 类型名 常量名;
变量:
typename 变量名 = 数值;
输入:
scanf("格式",&内容);
输出:
printf("格式",内容);
格式表:
%d 以十进制输出或输入有符号整数。
%u 以十进制输出或输入无符号整数。
%l 长整型,加在%d、%u、%o、%x后面。
%o 以八进制输出或输入无符号整数。
%x 以十六进制输出或输入无符号整数。
%e 以指数形式输出或输入实数。
%f 以小数形式输出或输入单双精度数,隐含输出六位小数。
%c 以字符形式输出或输入一个字符。
%s 输出或输入字符串。
函数:
声明:
typename 函数名(函数参数){
......
}
调用:
函数名(参数);
结构体:
创建:
struct 类型名 {
......
};
定义:
结构体类型名 结构体名;
运算符重载:
类型名 operator 运算符(const 类型名 变量)const{
......
}
共用体:
union 类型名{
......
};
队列:
初始化:
void clear(){
front = rear = 0;
}
判空:
bool empty(){
if(front == rear) return 1;
else return 0;
}
求队列中实际元素的个数:
int size(){
return (rear - front);
}
入队:
void push(int x){
q[++rear] = x;
}
出队:
void pop(){
front++;
}
取队首元素:
int get_front(){
return q[front+1];
}
栈:
初始化:
void clear(){
top = 0;
}
判空:
bool empty(){
if(top == 0) return 1;
else return 0;
}
求栈中实际元素的个数:
int size(){
return top;
}
进栈:
void push(int x){
stk[++top] = x;
}
出栈:
void pop(){
top--;
}
取栈顶元素:
int get_top(){
return stk[top];
}
指针:
数据类型 *指针变量;
数组:
数据类型 数组名称[元素个数];(一维数组)
数据类型 数组名称[一维元素个数][二维元素个数];(二维数组)
基本算法:
进制转换、高精度运算、模拟、递推、分治、递归、贪心、穷举、宽度优先搜索、深度优先搜索、回溯、动态规划、0-1背包
vector:
定义:
vector<typename> name;
函数:
vector.push_back(x)//在向量后面添加元素x、vector.size()//获得向量元素个数、vector.pop_back()//删除向量尾元素、vector.clear()//清空向量所有元素、vector.insert(it,x)//在向量送代器it处插入元素x、vector.erase(it//删除向量送代器it处元素;first,last)//删除左闭右开区间[first,last)内的所有元素
stack:
定义:
stack<typename> name;
函数:
stack.push(x)//将x压栈、stack.size()//返回栈内元素个数、stack.pop()//、stack.top()//、stack.empty()//
queue:
定义:
queue<typename> name;
函数:
push()、size()、pop()、front()、back()、empty()
map:
定义:
map<typename1,typename2> name;
函数:
find()、size()、clear()、erase()
pair:
定义:
pair<typename1(first),typename2(second)> name;
set:
定义:
set<typename>::iterator it;
set<typename> name;
函数:
size()、clear()、insert()、erase()
string:
定义:
string name;
函数:
length()、size()、clear()、substr()、insert()、erase()、find()、replace()
algorithm:
函数:
max()、min()、abs()、swap()、reverse()、next_permutation()、fill()、sort()、lower_bound()、upper_bound