常用函数速查

按头文件分类的函数清单,比赛时想不起来就翻这里。函数名在代码里用 引号 里的写法。

常用功能 常用头文件 STL 速查 语法速查 常用函数 算法模板 课程表 作业 竞赛真题

string 字符串成员 <string>

函数作用 / 示例
s.size() / s.length()长度。"abc".size() == 3
s.empty()是否为空字符串
s.substr(pos, len)截取子串。"abcdef".substr(1,3) == "bcd"
s.find(t)查找子串位置,找不到返回 string::npos
s.insert(pos, t)在 pos 处插入子串
s.erase(pos, len)删除从 pos 起 len 个字符
s.push_back(c)末尾追加一个字符
stoi(s) / stoll(s)字符串转 int / long long
to_string(x)数字转字符串
string s = "hello world"; size_t p = s.find("world"); // p == 6 if (p != string::npos) { ... } // 判断是否找到 int x = stoi("123") + 1; // 124 string t = to_string(x); // "124"

cmath 数学函数 <cmath>

函数作用 / 示例
abs(x)整数绝对值(<cstdlib>);浮点用 fabs
sqrt(x)平方根。sqrt(16) == 4
pow(a, b)a 的 b 次方(浮点,注意精度)
floor(x) / ceil(x)向下 / 向上取整。ceil(2.1)==3
round(x)四舍五入。round(2.5)==3
log(x)自然对数;log2(x) 以 2 为底
min(a,b) / max(a,b)较小 / 较大值
fmin / fmax浮点版 min / max
double r = sqrt(25.0); // 5.0 int up = ceil(7.0 / 2.0); // 4(向上取整做除法) int lo = 7 / 2; // 3(整数除法直接截断) cout << fixed << setprecision(2) << 3.14159;

algorithm 算法 <algorithm>

函数作用
sort(begin, end)排序(默认升序)
reverse(begin, end)反转区间
swap(a, b)交换两个变量
fill(begin, end, v)区间全部赋值为 v
min_element / max_element最小 / 最大元素位置
count(begin, end, v)统计 v 出现次数
binary_search(begin, end, v)二分查找是否存在(需已排序)

cctype 字符判断 <cctype>

函数作用
isalpha(c)是否字母(a-z / A-Z)
isdigit(c)是否数字(0-9)
isupper(c) / islower(c)是否大写 / 小写
toupper(c) / tolower(c)转大写 / 小写
isalnum(c)是否字母或数字
isspace(c)是否空白(空格 / 换行 / Tab)
char c = 'A'; if (isalpha(c)) c = tolower(c); // 'a' int cnt = 0; for (char ch : s) if (isdigit(ch)) cnt++;
在线编译器