摘要: 在 C 语言中,开发者常常使用 #define 预处理指令来定义常量、宏函数或条件编译开关。而在 C++ 编程中,我们应尽量使用语言本身的特性以确保安全性和可控性。 "#define" 的局限性 缺乏类型检查: #define PI 3.1415926 #define SQUARE(x) (x)*( 阅读全文
posted @ 2025-04-19 10:56 木杉的园子 阅读(52) 评论(0) 推荐(0)
摘要: 在 C++ 中,new 是我们最常用的内存分配方式之一。很多初学者会以为 new 只是一个语法糖,用来代替 C 语言的 malloc,但实际上,new 背后涉及的是一整套机制,其中包括 operator new、placement new 等概念。 1. new 我们一般使用以下语句创建一个对象: 阅读全文
posted @ 2025-04-18 23:35 木杉的园子 阅读(127) 评论(0) 推荐(0)
摘要: Dijkstra 算法是解决图论最短路径问题的经典算法,本文将介绍使用优先队列优化的 Dijkstra 算法。 1. Dijkstra 算法的基本步骤 Dijkstra 算法适用于非负权重的有向或无向图,其核心思路是: 初始化:将源点到自身的距离设为 0,到其他所有顶点的距离设为无穷大; 重复以下操 阅读全文
posted @ 2025-04-18 22:33 木杉的园子 阅读(495) 评论(0) 推荐(0)
摘要: 如果需要在程序中频繁地创建和删除小对象,如果直接对内存进行操作可能会造成较大的时间开销和内部碎片,而对象池是针对这一场景的有效优化手段。通过提前分配一定数量的对象在对象池中,并在需要时从池中获取对象,使用完毕后再归还给池,可以减少动态分配内存的次数,避免频繁的创建和销毁操作,从而提高性能和资源利用率 阅读全文
posted @ 2025-04-18 16:57 木杉的园子 阅读(104) 评论(0) 推荐(0)
摘要: 子串的定位操作通常称为串的模式匹配,它求的是子串(常称为模式串)在主串中的位置。暴力匹配算法会产生 \(O(nm)\) 的时间复杂度,其中 \(n\) 是主串长度,\(m\) 是模式串长度。而 KMP 算法能将匹配的时间复杂度降低到线性时间 \(O(n+m)\),本文将介绍 KMP 算法的核心思想与 阅读全文
posted @ 2025-04-14 10:55 木杉的园子 阅读(77) 评论(0) 推荐(0)
摘要: 我们常常会遇到一个问题:如何标识一个全排列中的一个排列?康托编码(Cantor Encoding)是一种将排列与整数进行双向映射的技巧,是康托展开在排列问题中的应用,可以高效完成状态压缩、快速查找、还原排列等操作。 1. 康托编码的定义 给定一个长度为 \(n\) 的排列 \(P = [p_0, p 阅读全文
posted @ 2025-04-13 23:24 木杉的园子 阅读(158) 评论(0) 推荐(0)
摘要: 在各大公司的机试中,常见的答题模式有 核心模式 与 ACM 模式。核心模式通常是一些在线测试平台(如力扣、牛客等)上使用的答题模式,需要答题者在函数体完成代码,函数的输入输出都是固定的,以供测试代码调用。ACM 模式需要答题者自行处理输入输出,通常以标准输入输出格式表示。下面以 C++ 为例展示 A 阅读全文
posted @ 2025-04-13 22:44 木杉的园子 阅读(308) 评论(0) 推荐(0)
摘要: 在 C++ 中,自定义比较函数通常有几种方法,主要通过以下几种方式来实现: 方法一:使用标准库函数对象 #include <iostream> #include <string> #include <map> int main() { // 使用标准库中预定义的比较器 std::map<int, s 阅读全文
posted @ 2025-02-26 14:11 木杉的园子 阅读(131) 评论(0) 推荐(0)
摘要: 在 C++ 中,匿名函数(通常是指 lambda 表达式)是无法直接递归调用自己的,因为匿名函数本身没有名字。然而,可以通过以下几种方法间接实现递归调用: 方法一:通过 std::function 来递归调用 #include <iostream> #include <functional> int 阅读全文
posted @ 2025-02-25 20:39 木杉的园子 阅读(108) 评论(0) 推荐(0)
摘要: 目前 FPGA 厂商提供的开发工具多数为闭源的二进制形式,这极大限制了研究人员对 FPGA 后端工具(如布局布线)进行创新,许多研究人员倾向于在理论架构而不是商业架构上评估他们的算法。 FPGA 工具链的组成比较复杂,将硬件描述语言编译到目标 FPGA 二进制的流程可以分为三个阶段:综合、布局布线、 阅读全文
posted @ 2025-02-24 15:27 木杉的园子 阅读(142) 评论(0) 推荐(0)