摘要: 后缀自动机(SAM) 为了方便,我们做出如下约定: “后缀自动机” (Suffix Automaton) 在后文中简称为 SAM 。 记 \(|S|\) 为字符串 \(S\) 的长度。 记 \(\sum\) 为字符集,记 \(|\sum|\) 为字符集大小。 关于 SAM 的复杂度证明在 OI Wi 阅读全文
posted @ 2021-10-18 09:16 ZTer 阅读(2435) 评论(7) 推荐(36) 编辑
摘要: 什么是 GDB GDB 是 GNU 项目下的一个调试器,它允许在程序运行的时候检查程序内部到底发生了什么。 GDB 可以做到以下事情: 开始程序,设置观测参数。 在特殊情况下暂停程序执行。 当程序停止执行的时候,检查程序状态。 修改程序,在修复某个 bug 后可以继续进行测试,寻找其他的 bug。 阅读全文
posted @ 2023-12-18 16:29 ZTer 阅读(13) 评论(0) 推荐(0) 编辑
摘要: # This is a CMakeLists.txt #[[ This is a CMakeLists.txt This is a CMakeLists.txt This is a CMakeLists.txt * CMake 生成的 make 文件以及一些其他的乱七八糟的文件都在终端当前对应的目录 阅读全文
posted @ 2023-12-17 13:23 ZTer 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 异常抛出与捕获 在程序运行的过程中,因为各种各样的原因,可能会出现各种各样的问题。 如果一个大型项目遇到一个简单的问题就崩掉的话,将会造成一定的损失。所以让程序变得更加强壮,不容易崩掉就变得很重要。 当程序执行到某一步的时候,我们通过特判发现了问题怎么办? int a[20]; void f(int 阅读全文
posted @ 2023-12-15 18:49 ZTer 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 引入 现在要实现一个比较函数 cmp,要求实现 int,double,string(按字典序)的大小比较。 一般来讲,常用的做法是写 4 个重载函数,分别对应 4 种不同的实参类型。 不想这么麻烦?似乎可以使用无类型指针强行对这四种类型做适配。 但是无类型指针每次调用之前必须显式地告诉它数据类型,但 阅读全文
posted @ 2023-12-06 09:09 ZTer 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 期中复习串讲 参与投票:21 人 top3:函数指针相关(18)函数嵌套(14)内联/重载函数(13) 我们着重讲这三部分,有一半人存在疑点,剩下的几个部分也会提一嘴,帮助大家复习一下。 函数指针相关 函数地址 函数和变量一样,都要占用内存空间。 既然占用了内存空间,存函数的那片内存的地址自然就成为 阅读全文
posted @ 2023-11-30 21:32 ZTer 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 运算符重载的意义是使得程序员可以重新定义一个运算符的行为。 基本规则 可以被重载的运算符 程序员几乎可以重载 C++ 的所有运算符,包括以下这些: + - * / % ^ & | ~ = < > += -= *= /= %= ^= &= |= << >> <<= >>= == != <= >= ! 阅读全文
posted @ 2023-11-29 20:55 ZTer 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 代表「静态」的关键字是 static ,它拥有多种含义。 用于声明某个变量是持久存储的(类似于全局变量)。 用于限制某个变量/函数不能从其他文件中访问。 用于声明一个成员变量/函数是一个全局变量/函数(所有对象共有)。 接下来我们分别对这几种情况来做讨论。 用于持久存储的声明与全局变量 将一个本地变 阅读全文
posted @ 2023-11-26 16:49 ZTer 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 拷贝构造由拷贝构造函数完成,发生在两个对象之间的赋值操作的时候。 拷贝构造是什么 引例 我们先来看一段代码和它的运行结果: /* In test91.h */ #ifndef TEST91_H_ #define TEST91_H_ #include <iostream> using namespac 阅读全文
posted @ 2023-11-22 20:52 ZTer 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 多态性是指在父类中定义的属性和方法被子类继承后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或者方法在父类及其各个子类中具有不同的含义。 多态性 我们先来看一段代码和它的运行结果: #include <iostream> using namespace std; class A { p 阅读全文
posted @ 2023-11-20 15:24 ZTer 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 孔子云:杀鸡用牛刀者,所谓向上造型也。 向上造型 显然孔子没说过开头那段话。 假设我们有一个父类 A 类,一个子类 B 类。 class A { public: A() : i(10) {} void Print() { cout << "a.i = " << i << endl; } privat 阅读全文
posted @ 2023-11-13 16:01 ZTer 阅读(8) 评论(0) 推荐(0) 编辑