临阵磨枪

做算法题除了要有思路之外,还需要有基本的算法功底,一些常用的API忘了,那可就好玩了。
优先队列默认大顶堆?怎么小顶堆?如何自定义比较规则?
双端队列前后怎么出?
怎么取随机数?rand(n+1)是多少的随机数?
C++如果实现获取用户输入?
cin会跳过空格、tab等空格(后面的字符就缺失了);
所以用getline: https://blog.csdn.net/xuhui_liu/article/details/73563648
字符串转数字?数字转字符串?ASCII码大小?
#include to_sting(数字);(如果传入的是一个char,那么实际上是char先转换为ASCII码(int),而后再进行转换)
#include atoi(char型数组);
https://www.runoob.com/cprogramming/c-function-atoi.html
ASCII码:
48 0;57 9;65 A;90 Z;97 a;122 z;
reserve和resize
vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!
原因如下:
reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_back()/insert()函数。
resize是改变容器的大小,且在创建对象,因此,调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operator[]操作符,或者用迭代器来引用元素对象。此时再调用push_back()函数,是加在这个新的空间后面的。
string的substr以及find?
find是找到子串(string类型)的第一个下标;
https://www.cnblogs.com/wkfvawl/p/9429128.html
substr(int m ,int n) 主要是从m拷贝n字节:
https://blog.csdn.net/sunshihua12829/article/details/50484966