C++ 常见问题

greater<typename>() 从大到小。less<typename>() 相反。

random_shuffle(a.begin(),a.end()) 随机打乱 a 中元素,最好加入随机数种子。

GetTickClock() 系统启动以来经过的毫秒数,可以做随机数种子,但需要头文件 windows.h

next_permutation(a.begin(),a.end()) 得到 a 的下一个排列,默认从小到大。如果有下一个排列返回 true 否则啥都不干返回 false

cout<<fixed<<setprecision(x) 保留 x 位有效数字。

cout<<setfill(ch)<<setw(len)<<a<<b 场宽为 len,空出来的部分用字符 ch 填充。setw 的作用效果只有一次。

toupper(ch) 如果是小写字母则转换为大写字母,否则不变。toupper(ch) 相反。

islower(ch) 判断是否是小写字母。isupper(ch) 相反。

nth_element(a.begin(),a.begin()+k,a.end())a 中前 k 小的元素放在前 k 个位置,剩下元素放在后面剩下位置,顺序没有限制。

INT_MAX LONG_LONG_MAX ULLONG_MAX INT_MIN LONG_LONG_MIN 字面意思。

reverse(a.begin(),a.end()) 翻转 a

cin明确要求转换下,读入成功返回 true 否则 false

scanf 返回读入成功的数量,如果读入前读入文件已结束则返回 EOF,也就是 -1

getchar() 读入失败返回 EOF


str.c_str() 将字符串以 char* 类型传回。

str.data() 将字符串以 char[] 类型传回。

str.size() 返回字符串长度。

str.empty() 判断字符串是否为空。

str.find(str2) 查找 str2 在字符串中第一次出现的位置,如果没有出现则返回 \(2^{64}-1\)。其中 str2 可为 char string char* char[]

str1.insert(pos,str2)str1 的位置 pos 前插入字符串 str2

str.erase(pos,len) 从位置 pos 开始删除 len 个字符。

str.erase(it1,it2) 删除指针 it1 到指针 it2 前面的所有字符,如果不存在 it2 就仅删除 it1 指向的字符。

str.clear() 删除字符串中的所有字符,使其变为空串。

str1.replace(pos,len,str2)str1 中从位置 pos 开始长度为 len 的字符替换成 str2。其中 str2 可为 char string char* char[]


pri.push(a) 向堆中加入元素 a

pri.pop() 弹出堆顶元素。

pri.empty() 判断堆是否为空。

pri.size() 返回堆中元素个数。

priority_queue<typename> 默认大根堆。

priority_queue<typename,vector<typename>,greater<typename> > 小根堆。

posted @ 2021-08-04 19:55  Biadocy  阅读(95)  评论(0编辑  收藏  举报