- &引用的用法,只是一个别名
- 二叉树层次遍历,使用队列
- 如果要求类似二维数组形式输出,可以使用循环嵌套,利用每次入栈的元素个数来作为第二个循环的次数。如果只是要求输出一维数组的形式,直接使用一个循环输出即可。
- if if if 和 if else if else if的区别
- pos = rand%(n-i) swap(temp[pos+i], temp[i]) 随机打乱数组
- unordered_map<char, int> m 无序哈希
- list链表的末尾,是最久使用过的,当容量满时,就要将它替换出去,将最新的(key,value)放在链表开头
- LRU缓存机制 list判断最近未使用 哈希map存储
- erase以后,itor已经指向下一个元素了,不应该再itor++,否则会跳过下一个元素
- if中的逻辑判断也有先后顺序
- 输出字母的ascii值可以使用int强转
- 判断素数循环到sqrt()就够了
- continue结束单次循环,break结束整个循环体
- cin后不能连续使用>> !!
- 使用new动态分配一维数组:int *data = new int[n];
- 使用new动态分配二维数组:int **data1 = new int*[m]; for(int i = 0; i < m; i++){data1[i] = new int[s];}
- if(s.empty()) return ""; 当判断字符串为空如何输出时,可以这么写
- c++使用cout输出固定的位数 ,可以加头文件#include<iomanip> ,使用setprecision(“位数”)函数
- 哑结点的使用,对于新建的链表将头节点设为哑结点,可以避免判断该链表是否为空的问题
- ListNode* res = new ListNode(0); 链表的动态分配规则
- 如果整数的输入或者输出超出了整型的范围,可以借助其他类型(如double或者无符号类型)来存储
- 对于vector构建出来的二维数组没有进行空间的申请,比如有些返回类型为vector<vector<>>类型的函数,对于这个返回值vector表示的二维数组要先申请大小,否则使用下标访问就会报这类错误。
- case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,既“只是开始执行处的入口标号”。
- 拷贝构造函数发生在对象还没创建,需要创建时;赋值操作符重载仅发生在对象已经执行过构造函数,即已经创建的情况下
- string类型通过下表取出来的字符时char类型
- char类型转int可以通过int强转
刷LeetCode(C++)的小心得(持续更新)
最新推荐文章于 2024-05-14 13:28:44 发布