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