摘要: 在 C++ 编程中一般使用 std::thread 来进行创建多个线程,实现并发执行、提升程序性能。 1. 线程的创建和启动 最简单的方式就是将一个可调用对象(函数、函数对象、lambda 表达式)传给 std::thread 构造函数: #include <iostream> #include < 阅读全文
posted @ 2025-04-27 14:43 木杉的园子 阅读(112) 评论(0) 推荐(0)
摘要: 在多线程编程中,使用互斥锁能够避免数据竞争。在 C++ 标准库中有 std::mutex 的互斥锁实现来帮助我们处理线程同步。 1. 互斥锁的基本用法 在 C++ 11 中,引入了 RAII (Resource Acquisition Is Initialization)风格的锁管理类 std::l 阅读全文
posted @ 2025-04-27 14:39 木杉的园子 阅读(78) 评论(0) 推荐(0)
摘要: 在 C 语言编程中,类型转换的方式非常简单,只有两种方法。第一种是隐式类型转换,这由编译器自动进行,比如: float x = 10; // Convert int to float 第二种是显式类型转换,由程序指定,比如: int x = (int)3.14; // Convert float t 阅读全文
posted @ 2025-04-19 23:57 木杉的园子 阅读(70) 评论(0) 推荐(0)
摘要: 在 C 语言编程中,使用裸指针(raw pointer)几乎是处理动态内存的唯一方式。然而,随着 C++ 的不断演进,特别是在 C++11 及之后的标准中,智能指针(std::unique_ptr, std::shared_ptr, std::weak_ptr)和引用(&)成为了更安全、更现代的替代 阅读全文
posted @ 2025-04-19 23:28 木杉的园子 阅读(35) 评论(0) 推荐(0)
摘要: 在 C 语言中,所有的全局变量、函数和宏定义都位于同一个全局命名空间中,随着项目规模的扩大,这种方式容易造成名称冲突和命名污染。而 C++ 引入了 namespace(命名空间)机制,有效解决了这些问题,提升了代码的可组织性、模块化和可维护性。 C 语言编程中的命名冲突 举一个简单的例子:假设我们需 阅读全文
posted @ 2025-04-19 22:13 木杉的园子 阅读(36) 评论(0) 推荐(0)
摘要: 在 C 语言中,开发者常常使用 #define 预处理指令来定义常量、宏函数或条件编译开关。而在 C++ 编程中,我们应尽量使用语言本身的特性以确保安全性和可控性。 "#define" 的局限性 缺乏类型检查: #define PI 3.1415926 #define SQUARE(x) (x)*( 阅读全文
posted @ 2025-04-19 10:56 木杉的园子 阅读(31) 评论(0) 推荐(0)
摘要: 在 C++ 中,new 是我们最常用的内存分配方式之一。很多初学者会以为 new 只是一个语法糖,用来代替 C 语言的 malloc,但实际上,new 背后涉及的是一整套机制,其中包括 operator new、placement new 等概念。 1. new 我们一般使用以下语句创建一个对象: 阅读全文
posted @ 2025-04-18 23:35 木杉的园子 阅读(100) 评论(0) 推荐(0)
摘要: Dijkstra 算法是解决图论最短路径问题的经典算法,本文将介绍使用优先队列优化的 Dijkstra 算法。 1. Dijkstra 算法的基本步骤 Dijkstra 算法适用于非负权重的有向或无向图,其核心思路是: 初始化:将源点到自身的距离设为 0,到其他所有顶点的距离设为无穷大; 重复以下操 阅读全文
posted @ 2025-04-18 22:33 木杉的园子 阅读(310) 评论(0) 推荐(0)
摘要: 如果需要在程序中频繁地创建和删除小对象,如果直接对内存进行操作可能会造成较大的时间开销和内部碎片,而对象池是针对这一场景的有效优化手段。通过提前分配一定数量的对象在对象池中,并在需要时从池中获取对象,使用完毕后再归还给池,可以减少动态分配内存的次数,避免频繁的创建和销毁操作,从而提高性能和资源利用率 阅读全文
posted @ 2025-04-18 16:57 木杉的园子 阅读(63) 评论(0) 推荐(0)
摘要: 子串的定位操作通常称为串的模式匹配,它求的是子串(常称为模式串)在主串中的位置。暴力匹配算法会产生 \(O(nm)\) 的时间复杂度,其中 \(n\) 是主串长度,\(m\) 是模式串长度。而 KMP 算法能将匹配的时间复杂度降低到线性时间 \(O(n+m)\),本文将介绍 KMP 算法的核心思想与 阅读全文
posted @ 2025-04-14 10:55 木杉的园子 阅读(59) 评论(0) 推荐(0)