摘要: 侯捷C++ static成员变量静态成员变量必须在类外初始化(定义)。这样可以保证static成员变量只被初始化一次。 模板函数作为模板类的友元时,声明也要加template<T> 阅读全文
posted @ 2021-12-12 21:18 80k 阅读(67) 评论(0) 推荐(0)
摘要: KMP用于o(n)的字符串匹配。 使用next数组记录以当前阶段为后缀的,和以开始位置为前缀匹配的最长长度,即匹配过程中进行后移后保留的长度。 next数组的计算和匹配过程类似。 推荐数组从1开始计数 注意,自身match时,是不包含当前位置的前缀,而互相match时,是包含当前位置的前缀,所以两次 阅读全文
posted @ 2021-12-12 15:40 80k 阅读(132) 评论(0) 推荐(0)
摘要: 可以用数组直观的模拟栈和队列,栈记录栈顶位置,队列记录头和尾。 单调栈和单调队列可以用来记录有单调性的数据,当插入新数据时,将违反单调性的数据删去,保持单调。 可以查找,距离最近的小于当前数据的位置,以及滑动窗口内的极值。 阅读全文
posted @ 2021-12-12 14:29 80k 阅读(51) 评论(0) 推荐(0)
摘要: 链表一般不用结构体创建(new的使用很慢) 而是用邻接表进行表示 两个数组分别e[]和ne[]分别记录节点的值和下一个节点的编号 head记录头结点指向的位置,idx表示当前可以使用的节点 用数组模拟链表时,删除链表无法释放内存,但是运行速度快。 双链表则用e[]和l[]和r[]记录; 可以将单链表 阅读全文
posted @ 2021-12-12 10:50 80k 阅读(74) 评论(0) 推荐(0)