- 博客(53)
- 收藏
- 关注
原创 八大排序:(四)选择排序
选择排序是一种简单直观的排序算法,通过不断选择剩余元素中的最小值并交换到正确位置来完成排序。其时间复杂度始终为O(n²),空间复杂度为O(1),属于原地排序。虽然实现简单、交换次数少,但不适合大型数据集。适用于小规模数据排序和教学场景。相比其他算法,选择排序的优势在于代码简洁易懂,但效率较低,实际应用中多采用更高效的排序算法如快速排序或归并排序。
2026-04-03 12:47:02
327
原创 八大排序:(三)快速排序
快速排序是一种高效的分治排序算法,通过选择基准元素将数组划分为左右子数组并递归排序。其平均时间复杂度为O(nlogn),空间复杂度O(logn),但最坏情况会降至O(n²)。算法通过分区操作实现原地排序,主要步骤包括选择基准、元素交换和递归处理。虽然不稳定且小数据效率不高,但通过随机基准、三数取中等优化可提升性能。相比归并排序和堆排序,快速排序更节省空间,适合处理大型数据集,是实际应用中最常用的高效排序算法之一。
2026-04-03 12:40:03
263
原创 STL排序算法详解
本文详细解析了STL中的三种排序算法:sort(混合排序,不稳定,O(nlogn))、partial_sort(堆排序思想,获取前N个元素,O(nlogk))和stable_sort(归并排序,稳定但需额外空间)。通过性能测试对比了它们的效率差异,并提供了具体应用场景建议:sort适用于通用排序,partial_sort适合Top-K问题,stable_sort用于需要保持元素顺序的情况。文章还给出了代码优化建议,帮助开发者根据实际需求选择最合适的排序方法。
2026-03-30 23:04:28
596
原创 常用算法 详解
本文详细解析了C++ STL中的常用算法,包括源码实现和应用示例。主要涵盖以下几类算法:1)数值计算类(如accumulate);2)查找类(如find、binary_search);3)修改类(如copy、transform);4)排序相关(如sort、partition);5)集合操作(如set_intersection)。文章通过源码剖析揭示算法实现原理,并配以典型应用场景的代码示例,如使用accumulate计算乘积、binary_search实现二分查找、partition划分数据集等。这些算法封
2026-03-30 22:58:26
843
原创 无序关联容器:unordered map和unordered multimap 详解
C++无序关联容器unordered_map和unordered_multimap详解:本文全面介绍了C++标准库中的两种无序关联容器。unordered_map存储唯一键值对,而unordered_multimap允许键重复。文章详细讲解了容器的初始化方法、元素操作(插入/删除)、迭代器使用、运算符重载以及常用成员函数(如find、count、equal_range等)。特别强调了哈希表相关特性,包括桶管理、负载因子控制等。通过词频统计、缓存实现等应用场景展示了容器的实际用途。unordered_map/
2026-03-29 12:20:16
452
原创 无序关联容器:unordered set和unordered multiset 详解
C++中的unordered_set和unordered_multiset是基于哈希表的无序关联容器,分别用于存储唯一元素和可重复元素。它们提供高效的O(1)平均时间复杂度操作,包括插入(insert/emplace)、删除(erase)和查找(find/count)。主要特点包括:无序存储、快速访问、支持前向迭代器遍历,以及提供哈希表管理功能(bucket_count/rehash等)。应用场景包括快速查找、数据去重和元素统计。相比有序容器set/multiset,它们牺牲顺序性换取更高性能,适用于不要求
2026-03-29 08:00:00
461
原创 有序关联容器:map和multimap映射 详解
C++中的map和multimap是标准库中的有序关联容器,用于存储键值对并根据键自动排序。map要求键唯一,而multimap允许键重复。两者都基于红黑树实现,支持高效的插入、删除和查找操作(O(logn))。主要功能包括:1) 多种初始化方式;2) 插入/删除元素(insert/erase);3) 双向迭代器遍历;4) 比较运算符;5) 常用成员函数如find、count、lower_bound等。应用场景包括键值存储、词频统计、数据排序和区间查找等。map适合需要唯一键的场景,multimap则适用于
2026-03-28 09:00:00
471
原创 有序关联容器:set和multiset集合 详解
摘要:本文详细介绍了C++标准库中的set和multiset容器。set存储唯一元素,multiset允许重复元素,两者都自动排序。主要内容包括:容器定义与初始化方法;元素插入(insert)和删除(erase)操作;常用迭代器遍历方式;成员函数如count、find、lower_bound等的使用;比较运算符功能;以及典型应用场景如去重、排序和快速查找。set/multiset基于平衡二叉搜索树实现,提供O(logn)时间复杂度的基本操作,适合需要有序数据处理的场景。
2026-03-28 08:00:00
872
原创 容器适配器:stack栈 、queue队列、priority queue优先级队列、bitset位图 详解
本文介绍了C++标准库中的四种常用数据结构:1.stack栈(后进先出LIFO),包含初始化方法和常用操作(push/pop/top等);2.queue队列(先进先出FIFO),说明其特点和基本操作(push/pop/front/back等);3.priority_queue优先级队列(自动排序),详细讲解其堆实现原理和自定义比较方法;4.bitset位图(固定大小位集合),介绍位操作方法和转换函数。每种数据结构都配有初始化示例和典型操作演示,涵盖了empty、size等常用成员函数的使用方式。
2026-03-27 17:11:41
476
原创 顺序容器:forward list单链表 详解
本文详细介绍了C++标准库中的forward_list容器。forward_list是C++11引入的单向链表,具有高效的头部插入/删除操作。文章从定义和初始化开始,讲解了多种初始化方式;详细说明了添加元素的push_front、emplace_front等方法;介绍了迭代器类型及其使用;列举了常用运算符和成员函数;重点讲解了forward_list特有的操作如merge、remove、sort等;最后通过三个综合练习展示了forward_list的实际应用,包括基本操作、特有函数使用以及实现队列数据结构。
2026-03-27 16:42:25
566
原创 顺序容器:list双向链表 详解
摘要: STL中的list是C++标准库提供的双向循环链表容器,具有高效的插入/删除操作(O(1)时间复杂度),但不支持随机访问。主要特点包括:1) 支持前端(push_front/pop_front)和后端(push_back/pop_back)操作;2) 提供多种迭代器类型(正向/反向/常量);3) 特有成员函数如merge(合并)、sort(排序)、unique(去重)等;4) 通过指针操作实现元素移动,无需数据拷贝。list特别适合频繁插入删除的场景,但随机访问性能较差,需顺序遍历。使用时需包含&l
2026-03-26 22:45:01
668
原创 顺序容器:deque双端队列 详解
摘要:C++中的deque(双端队列)是一种支持两端高效插入/删除的顺序容器,定义在<deque>头文件中。与vector相比,deque在两端操作性能更优(O(1)),内存重分配效率更高,但中间插入/删除效率较低(O(n))。主要特性包括:支持随机访问迭代器、多种初始化方式、提供push_front/pop_front等高效两端操作方法。deque还可用于动态创建二维数组,配合vector和指针可实现灵活的多维数据结构管理。典型应用场景包括需要频繁操作序列两端的算法实现,如队列模拟等。
2026-03-26 20:27:20
619
原创 顺序容器:Array 数组 详解
C++11标准库中的array容器是一种固定大小的顺序容器,具有连续存储、高效性能和类型安全等特点。它定义在<array>头文件中,大小在编译时确定,不能动态调整。array支持多种初始化方式(默认、列表、聚合、拷贝),提供丰富的迭代器类型(正向、反向、常量)和成员函数(at、empty、size、front、back、fill、swap)。相比原生数组,array具有类型安全、边界检查等优势,但大小固定。文章详细介绍了array的定义、初始化、元素修改、迭代器使用、运算符重载以及与原生数组的比
2026-03-26 19:01:22
556
原创 C++ vector 详解
C++ vector容器详解 vector是C++标准库中的动态数组容器,提供高效的随机访问能力。本文详细介绍了vector的基本用法: 定义与初始化:支持多种初始化方式,如默认初始化、列表初始化、指定元素个数等。 元素操作:包括push_back/emplace_back添加元素,pop_back删除元素,以及insert/erase插入删除元素。 访问元素:可通过下标运算符[]、at()成员函数或迭代器访问元素。 常用成员函数:包括size()获取大小,empty()判断是否为空,clear()清空容器
2026-03-25 21:31:34
687
原创 C++ String 详解
本文详细介绍了C++中string类的使用方法,主要包括:1. 多种初始化方式(空字符串、C风格字符串、重复字符等);2. 迭代器类型及遍历方法;3. 常用运算符重载(赋值、连接、比较等);4. 核心成员函数(查找、插入、删除、替换等);5. 全局函数(类型转换、输入输出等);6. 基于范围的for循环遍历。文章通过具体代码示例演示了string类的各种操作,包括字符串处理、查找替换、类型转换等功能,涵盖了string类的主要应用场景。
2026-03-25 21:04:44
893
原创 函数模板、类模板 详解
本文深入探讨了C++标准模板库(STL)中的函数模板与类模板。首先介绍了函数模板的基本概念和语法,包括模板参数声明、类型推导和特化机制。其次详细解析了STL中常用的函数模板,如查找算法(find)、排序算法(sort)和变换算法(transform)。在类模板部分,阐述了其基本语法、实例化方法、特化与部分特化技术,以及默认模板参数、继承关系和成员模板等高级特性。最后通过数组最大值计算、快速排序和队列实现等实际案例,展示了模板编程的具体应用。全文系统性地梳理了C++模板的核心知识,为开发者提供了使用模板进行泛
2026-03-24 21:06:21
460
原创 HTTP协议与Web服务器详解
HTTP协议是Web通信的基础应用层协议,采用客户端-服务器模型,经历了从HTTP/0.9到HTTP/3的版本演进。其无状态特性通过Cookie和Session实现状态管理,请求响应结构包含请求行/状态行、头部和主体三部分。常见方法包括GET、POST等,状态码分为1xx-5xx类别。Web服务器(如Apache、Nginx)通过多进程/线程或事件驱动模型处理请求,提供静态资源服务、动态内容处理等功能。现代Web架构强调HTTPS安全协议、负载均衡、性能优化和微服务架构,Nginx等服务器可通过配置实现反向
2026-03-24 20:26:16
693
原创 UDP 编程 详解
本文详细介绍了UDP协议及其编程实现。UDP是一种无连接、不可靠但高效的传输层协议,适用于视频流、游戏等实时应用。文章对比了UDP与TCP的特性差异,详细解析了UDP数据报格式和核心API(socket、bind、sendto、recvfrom等),并提供了服务器和客户端的编程示例。此外,还涵盖了UDP高级特性如广播、多播、超时设置和I/O多路复用,以及可靠UDP实现和文件传输的完整代码示例。最后总结了UDP编程要点和常见问题调试方法,为开发者提供了全面的UDP网络编程指导。
2026-03-23 18:57:27
478
原创 TCP 编程 详解
本文详细介绍了TCP协议及其网络编程实现。主要内容包括:1)TCP协议特点(面向连接、可靠传输、流量控制等)及三次握手/四次挥手过程;2)核心API函数(socket/bind/listen/accept等)的使用方法;3)服务器端编程模型(迭代、多进程、多线程);4)客户端编程流程;5)高级特性(非阻塞I/O、select/poll/epoll多路复用);6)完整示例代码展示了一个基于epoll的高并发服务器实现。文章还总结了常见错误码和调试工具,强调了TCP编程中连接管理、错误处理和并发模型选择等关键要
2026-03-23 10:00:00
469
原创 Linux IO模型详解
本文系统介绍了Linux系统中的五种I/O模型及其实现原理。主要内容包括:1. I/O模型分类(阻塞/非阻塞/I/O多路复用/信号驱动/异步I/O)及其同步异步特性;2. 详细解析每种模型的工作原理、代码实现及适用场景;3. 重点剖析epoll机制的优势(高效事件驱动、无数量限制、支持ET模式等);4. 实际应用中的服务器架构选择建议和性能优化技巧;5. 常见面试问题解答。文章通过对比分析各模型特点,指出epoll在高并发场景中的优势,并提供了完整的示例代码,为开发高性能网络服务提供了实用参考。
2026-03-23 08:00:00
517
原创 Linux系统基础详解(二)
本文详细介绍了Linux系统开发中的核心工具和技术,主要内容包括: GCC/G++编译套件的使用方法和常见选项 程序编译链接的完整流程(预处理-编译-汇编-链接) GDB调试工具的使用技巧 进程管理和用户权限管理 文件压缩归档命令 静态库与动态库的创建和使用 Linux常见面试题目解析 文章通过大量命令示例和对比表格,系统性地讲解了Linux开发环境中的关键知识点,既包含基础操作指南,也涉及高级调试技巧和系统管理方法,适合作为Linux开发的实用参考手册。
2026-03-22 19:25:50
468
原创 Linux系统基础详解(一)
本文全面介绍了Linux系统的基础知识,包括目录结构、文件权限和常用命令操作。主要内容分为9个部分:1. Linux树形目录结构,详细说明根目录下各子目录的功能;2. 家目录概念及特点,包含用户个人文件和配置;3. 基础命令使用,涵盖文件操作、目录管理等;4. 绝对路径与相对路径的区别及使用场景;5. 文件类型与权限管理,包括权限表示法和特殊权限;6. 修改权限的方法,如chmod、chown等命令;7. 系统管理基础命令,包括进程、网络和查找工具;8. 文件查看命令对比,如cat、less、head等;9
2026-03-22 18:38:05
599
原创 Linux fork + exec进程创建 详解
本文详细介绍了Linux系统中进程创建的核心机制fork+exec模式。主要内容包括:1)fork系统调用的工作原理、资源复制行为及父子进程区别;2)exec系列函数的功能差异和使用场景;3)fork+exec的标准组合模式及其典型应用;4)写时复制(COW)优化机制的原理与优势;5)进程间关系管理及僵尸/孤儿进程处理。文章通过代码示例演示了shell实现、进程池等实际应用,并总结了常见问题与注意事项,为Linux进程管理提供了全面的技术参考。
2026-03-22 07:00:00
419
原创 Linux 信号详解
摘要:信号是Linux/Unix系统中的异步事件通知机制,用于进程间通信和异常处理。本文系统介绍了信号的基本概念、常见信号类型(如SIGINT、SIGKILL、SIGTERM等)、信号产生方式(终端按键、硬件异常、系统调用等)以及信号处理方法(signal/sigaction)。重点阐述了信号阻塞、实时信号特性,并提供了信号处理的最佳实践,包括安全函数使用、自管道技巧和子进程处理方案。文章还包含常用命令参考,帮助开发者正确使用信号机制进行进程管理和异常处理。
2026-03-21 15:35:28
528
原创 孤儿进程 详解
本文系统介绍了孤儿进程的概念、产生机制及其应用。孤儿进程是指父进程终止后仍在运行的子进程,会被init进程(PID=1)自动收养。文章通过代码示例演示了孤儿进程的产生过程,并与僵死进程进行了对比:孤儿进程仍在运行且无害,而僵死进程是已终止但未被回收的进程,可能造成资源浪费。重点阐述了孤儿进程在守护进程实现中的应用场景,并提供了创建守护进程的标准步骤。最后总结了孤儿进程与僵死进程的核心区别,强调了合理使用wait()回收进程的重要性。文章通过理论讲解与代码实践相结合的方式,全面解析了孤儿进程的运行机制及其在L
2026-03-21 15:05:13
369
原创 僵死进程及Linux文件操作 详解
本文主要讨论了Linux系统中的僵死进程问题和文件操作机制。关于僵死进程,当子进程先于父进程终止且父进程未调用wait()获取其状态时,子进程会变为僵死进程,占用系统资源。文章介绍了三种处理方法:使用wait()函数、信号处理机制和双重fork技术。在文件操作方面,详细解释了文件描述符的概念,以及open/close/read/write等基本函数的使用方法,同时列举了常见的文件操作标志和权限标志。最后总结了僵死进程的危害和解决方案,以及文件操作的关键要点,强调资源管理和错误检查的重要性。
2026-03-20 23:15:10
506
原创 Linux进程基础 详解
本文介绍了进程的基本概念及其在操作系统中的关键特性。首先阐述了进程与程序的区别,指出进程是运行中的程序,拥有独立的地址空间和PCB(进程控制块)。详细讲解了进程的三种基本状态(就绪、运行、阻塞)及其转换关系。重点分析了fork系统调用的工作原理,包括其写时拷贝技术(Copy-on-Write)的优化机制,通过延迟复制提高了内存使用效率。此外,文章还探讨了进程的逻辑地址与物理地址的区别,解释了MMU和页表在地址转换中的作用,并说明了虚拟地址空间带来的进程隔离、内存扩展和碎片管理等优势。最后通过代码示例展示了进
2026-03-20 14:56:51
766
原创 死锁 详解
本文系统介绍了死锁的概念、产生条件和解决方法。死锁是指多个线程因争夺资源而互相等待的阻塞现象,其产生需要满足互斥、请求保持、不剥夺和循环等待四个必要条件。通过C语言代码示例展示了两个线程因锁获取顺序不同导致的死锁场景,并提出了三种解决方法:固定锁获取顺序(破坏循环等待)、一次性申请所有资源(破坏持有并等待)、使用超时锁(破坏不可剥夺)。文章强调避免死锁的关键在于打破四个必要条件之一,为多线程编程提供了实用的死锁预防策略。
2026-03-19 21:45:36
632
原创 线程安全 详解
本文探讨了线程安全及多线程编程中的关键问题。首先通过strtok函数的非线程安全示例,说明了使用全局变量在多线程环境中的风险。接着介绍了线程安全概念及解决方案,重点演示了使用strtok_r函数实现线程安全字符串分割的方法。文章还深入分析了多线程环境下fork()的两个重要问题:子进程只继承调用线程,以及互斥锁状态继承可能导致的死锁问题。最后给出了多线程程序中调用fork()的最佳实践建议,包括使用pthread_atfork()注册处理函数和在子进程中尽快调用exec()等解决方案。这些内容为开发安全可靠
2026-03-19 19:50:17
407
原创 解决多线程并发--线程同步(二)详解
本文介绍了两种线程同步方法:信号量和条件变量。信号量通过计数器控制资源访问,可实现互斥锁功能及更复杂的同步逻辑(如生产者-消费者问题)。条件变量则用于线程在特定条件不满足时挂起等待,需配合互斥锁使用。文中通过代码示例演示了信号量保证全局变量++原子性(二元信号量)和线程顺序控制(ABC交替打印)的实现,以及条件变量实现生产者-消费者模型的案例。同时对比了信号量在线程同步与进程通信中的区别,包括作用域、初始化方式和共享机制等差异。最后总结了四种线程同步方法(互斥锁、读写锁、信号量、条件变量)的特点与适用场景。
2026-03-18 21:00:27
546
原创 解决多线程并发--线程同步(一)详解
本文介绍了线程同步的概念及其必要性。在多线程环境中,当多个线程同时访问共享资源时会出现竞争条件,导致数据不一致问题。文章通过计数器自增的例子说明了线程同步的重要性。核心同步机制包括互斥锁、信号量、条件变量和读写锁。重点介绍了互斥锁和读写锁:互斥锁确保同一时间只有一个线程访问临界区;读写锁则区分读/写操作,允许多个读线程同时访问,但写操作独占资源。文中提供了两种锁的具体代码实现示例,展示了如何通过同步机制解决共享资源访问问题。
2026-03-18 20:04:15
905
1
原创 线程与线程实现详解
本文系统介绍了线程的概念及其实现原理。首先定义了线程作为CPU调度的基本单位,类比为工厂车间中的工人。详细阐述了线程的三大组成部分:线程ID、程序计数器和私有栈空间。通过对比表形式分析了进程与线程在资源开销、通信方式、独立性等方面的区别。重点讲解了用户级线程和内核级线程的特点及混合模型优势。特别指出Linux采用轻量级进程实现线程的独特机制,通过clone系统调用灵活控制资源共享。最后详细解析了pthread_create、pthread_join和pthread_exit三个核心线程操作函数的使用方法及注
2026-03-16 21:22:04
412
3
原创 进程间通信 之 套接字
本文介绍了套接字(Socket)的核心概念与分类。套接字是网络编程的基础,支持进程间通信(IPC)和网络数据传输。文章首先阐述套接字作为应用程序连接网络的“插座”;的本质,并说明其遵循”一切皆文件“的操作模式。重点分析了套接字的三要素(IP地址、传输协议、端口号)及其独特地位。最后将套接字分为三类:流式套接字(TCP)、数据报套接字(UDP)和原始套接字,分别说明其特点和适用场景。文章还简要介绍了操作系统实现套接字的两种方式。
2026-03-14 12:46:13
277
1
原创 进程间通信 之 消息队列
本文介绍了消息队列作为进程间通信机制的核心概念和使用方法。消息队列是内核维护的链表结构,支持按类型读取消息、异步通信和内核持久化等特点。使用流程包括:通过ftok()生成唯一键值,用msgget()创建/获取队列,定义包含消息类型的结构体,使用msgsnd()发送消息,通过msgrcv()按类型接收消息,以及用msgctl()控制队列(如删除)。消息队列提供了比管道更灵活的通信方式,允许进程通过类型选择性地收发消息。
2026-03-13 14:18:08
427
原创 进程间通信 之 共享内存
摘要:共享内存是最高效的进程间通信(IPC)方式,通过直接读写同一物理内存区域实现数据交换,避免了内核与用户空间的数据拷贝。本文介绍了共享内存的核心概念、系统调用函数(shmget/shmat/shmdt/shmctl)及双进程通信示例(writer/reader)。同时探讨了命令行管理工具(ipcs-m/ipcrm-m)和共享内存的最大缺陷——缺乏同步机制,提出通过信号量实现进程同步的解决方案。共享内存具有高效性、全局性等特点,但需要用户自行管理生命周期和同步问题。
2026-03-13 13:48:52
397
原创 进程间通信 之 信号量
信号量是进程间同步的重要机制,用于解决共享资源访问的互斥问题。文章通过打印机使用案例展示了无信号量控制时进程输出混乱的问题,解释了信号量的PV操作原理:P操作为资源请求(减1),V操作为资源释放(加1)。详细介绍了Linux信号量API(semget创建、semop操作、semctl控制),并通过代码示例演示了如何用信号量确保打印机访问的原子性,使输出结果保持AA/BB成对出现。信号量能有效避免资源竞争,保证临界区代码的互斥执行。
2026-03-10 20:59:33
344
原创 进程间通信 之 管道
摘要:管道是UNIX系统中最基本的进程间通信方式,分为有名管道和无名管道两种。无名管道通过pipe()创建,只能在父子进程间通信;有名管道通过mkfifo创建特殊文件,支持任意进程通信。两者都遵循半双工通信模式,具有阻塞特性(读空阻塞、写满阻塞)。管道操作类似文件I/O,使用简单但存在容量限制(4KB-64KB)和单机通信限制。无名管道适用于亲缘进程,有名管道扩展了应用场景。主要特点包括:内核缓冲区管理、自动同步、无消息边界,写端关闭时读端返回0,读端关闭时写端触发SIGPIPE信号。
2026-03-10 20:18:37
332
原创 进程间通信详解(IPC机制)之 定义与方法
本文介绍了进程间通信(IPC)的概念和主要方法。进程通信的本质是通过操作系统内核提供的机制,在隔离的进程间实现信息传递和数据交换。其目的包括数据传输、资源共享、事件通知以及进程同步与互斥。文中详细阐述了六种主要通信方法:管道(匿名和命名)、信号(软件中断)、消息队列(内核消息链表)、共享内存(最快的IPC方式)、信号量(同步计数器)以及套接字(跨主机通信)。每种方法都有其特点和应用场景,如管道适合有亲缘关系的进程,共享内存需要配合信号量使用等。
2026-03-09 20:26:02
453
原创 C++ 标准模板库 STL 容器介绍
本文系统介绍了C++ STL中的容器分类及其特性。主要内容包括:1) 容器分为序列式、关联式、无序关联式和适配器四大类;2) 详细解析vector、deque、list等序列式容器的底层实现和操作复杂度;3) 阐述set、map等关联式容器的红黑树实现原理;4) 说明C++11新增的无序容器哈希表实现;5) 介绍stack、queue等适配器的特性;6) 提供容器选择指南和常见问题解答,包括迭代器失效、线程安全等注意事项。文章强调应根据具体需求(如访问模式、增删频率等)合理选择容器类型。
2026-03-07 20:17:11
611
原创 内存泄漏详解
本文系统介绍了内存泄漏的概念、成因及防范措施。内存泄漏是指程序未能释放已分配的堆内存,导致系统资源浪费,严重时可能引发程序崩溃。主要成因包括忘记释放、指针覆盖、异常中断和循环引用等。文章通过C/C++代码示例展示了典型的内存泄漏场景,并分析了其危害性。预防措施包括遵循RAII原则、使用智能指针、标准库容器等。最后对比了内存泄漏与野指针的区别,并提供了定位泄漏的方法。特别强调在C++中应优先使用智能指针和标准容器来避免内存管理错误。
2026-03-06 20:26:27
379
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅