一、万能头
#include<bits/stdc++.h>using namespace std;
#define int long long //万一题目卡数值范围signed main()
{return 0;
}
二、常用函数
1、排序函数
正序:
sort(a, a + n);
逆序:
先sort(a, a + n);
再reverse(a, a + n); //n是你要排序的元素的末尾位置
2、字符串
(1)得到字符串长度
string s = "abcdef";
int m = s.length();
(2)截取字符串一部分字符
string s = "12345678";
s = s.substr(2,3); //开始截取的位置,要截取的长度//输出:“345”
3、最大公约数
int a = 6, b = 8;
int c = __gcd(a, b); //注意是两个底杠
4、取最大最小值函数
利用max(),min();
int a = 4, b = 6;
int c = max(a, b);
三、STL
(1)队列
//创建queue<int>q;//入队q.push(5);//得到对头元素int a = q.front();//出队q.pop();//判断是否为空bool flag = q.empty();//得到尺寸int a = q.size();
(2)栈
stack<int>s;s.empty() //判断栈是否为空。如果栈为空,返回 true,否则返回 false。s.size() //返回栈中实际的元素个数。s.push(e) //将元素e压入栈顶。s.top() //访问栈顶元素。s.pop() //移除栈顶元素。
(3)优先队列
priority_queue<int> q;//初始化,默认为大顶堆,即从大到小排序priority_queue<int, vector<int>, greater<int> > q;//小顶堆,即从小到大排序top()//访问队首元素(优先级最高的那个元素)pop()://弹出优先级最高的元素push()://塞元素进队列empty() //是否空和size()://元素个数
四、数字提取+进制转换
(1)将字符转成数字
char ch = '7';
int x = ch - '0';
#include<bits/stdc++.h>using namespace std;
#define int long long //万一题目卡数值范围signed main()
{string s;cin >> s;int x = 0;int n = s.length();for(int i = 0; i < n; i ++){if(s[i] >= '0' && s[i] <= '7'){int ch = s[i] - '0'; //将字符转成数字x = x * 10 + ch; }}cout << x << '\n';//将八进制转成十进制int num = 0; //最终要得到的十进制int pos = 0; //位数while(x){int a = x % 10;x /= 10;num = num + (a *pow(8, pos));pos ++;// cout << num << '\n';}cout << num;return 0;
}
提取数字的方法和上边一样,主要看的是十进制转换成十六进制