DFS 和 DP 的用法区别
摘要:DFS进行分块递归的时候,注意各个子空间是否有重叠部分,如果有,最好改为DP(防止重复计算) dfs(d, n) { dfs(l, n); dfs(r, n); } 检查 l 和 r 是否有重叠部分
阅读全文
posted @
2023-06-15 00:45
wkxnk
阅读(104)
推荐(0) 编辑
【易错点】getchar, printf, gets 的区别
摘要:getchar 为输入单个字符,输入 "et al",得到的是 'e', 't', ' ', 'a', 'l' printf 为输入多个参数,以空格号为分隔,输入 “et al”(%s输入格式),得到的是 "et", "al" gets 为输入字符串,结束标记为换行符 '\n',输入结束以后读取到的
阅读全文
posted @
2023-06-15 00:13
wkxnk
阅读(89)
推荐(0) 编辑
【易错点】数组名,数组名+偏移,数组取地址 与 sizeof 操作符
摘要:int a[3] = {1, 2, 3}; a: 数组名,数组中第一个元素的地址,相当于 &a[0] &a:整个数组的地址,在数值上等于 a a+1:数组中第二个元素的地址,相当于 &a[1] &a+1:整个数组结束以后后面一个位置的地址 即:a = &a, 但 a+1 ≠ &a+1 a[0] a[
阅读全文
posted @
2023-06-12 22:43
wkxnk
阅读(58)
推荐(0) 编辑
数据类型所占的字节数
摘要:32位编译器: char short int long long long float double 指针 1 2 4 4 8 4 8 4 64位编译器: char short int long long long float double 指针 1 2 4 8 8 4 8 8
阅读全文
posted @
2023-06-12 00:01
wkxnk
阅读(26)
推荐(0) 编辑
虚函数与纯虚函数
摘要:虚函数: 函数前有virtual关键字,子类继承后用于动态多态 纯虚函数: 函数前有virtual关键字,且函数列表后必须有 “=0”,纯虚函数没有函数体,只能在子类中重载后实现函数体并调用
阅读全文
posted @
2023-06-10 00:26
wkxnk
阅读(10)
推荐(0) 编辑
重载,覆盖,隐藏与多态
摘要:如果父类与子类中拥有同名的函数: 1. 如果父类函数前没有virtual,且父子同名函数的参数列表不同(参数个数、类型和顺序至少有一个不同), 则构成重载,用父类指针调用该函数名,调用的是子类函数,父类函数被覆盖 / 隐藏 / 不可见 (注:若两个函数参数列表相同,只有返回值类型不同,不构成重载)
阅读全文
posted @
2023-06-10 00:22
wkxnk
阅读(12)
推荐(0) 编辑
父类与子类的构造函数
摘要:1. 子类实例化时一定会调用父类的构造函数,然后再调用自己的构造函数(析构时顺序相反) (因为子类继承了部分父类的成员变量,需要调用父类的构造函数来初始化) 2. 若有自定义的构造函数,则系统调用自定义构造函数;如果没有,则系统会自动生成一个默认的构造函数并调用它 (系统自动调用属于“隐式调用”)
阅读全文
posted @
2023-06-10 00:05
wkxnk
阅读(106)
推荐(0) 编辑