logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++ 单例模式

优先选饿汉模式:实现简单、线程安全,适合实例轻量、必被使用的场景;选懒汉模式(C++11 局部静态版):资源敏感、实例可能未被使用的场景,极简且线程安全;无论哪种模式,都要禁用拷贝构造和赋值运算符,避免通过拷贝创建新实例;单例模式的本质是 “控制实例数量”,需根据资源开销、线程场景选择实现方式。饿汉模式和懒汉模式的优缺点对比单例模式的应用场景有哪些?除了单例模式,C++还有哪些常用的设计模式?

文章图片
#开发语言#c++
S24 二叉树的中序遍历

先递归地遍历左子树,然后访问根节点,最后递归地遍历右子树。从访问顺序的逻辑来看,中序遍历会按照 “左子树节点→根节点→右子树节点” 的顺序来访问二叉树中的所有节点。这种遍历方式对于二叉搜索树(BST)具有特殊的意义,因为在二叉搜索树中,中序遍历的结果是一个按升序排列的节点值序列。例如,对于一棵存储有序数据的二叉搜索树,中序遍历可以得到从小到大排列的所有元素。举个例子如下图:中序遍历的规则是 “左

#算法
S23 二叉树的先序遍历

访问当前根节点:读取或处理根节点的值(如打印、存储)。遍历左子树:递归地对当前根节点的左子树执行先序遍历。遍历右子树:递归地对当前根节点的右子树执行先序遍历。先序遍历的规则是 “根 - 左 - 右”,即先访问根节点,再递归遍历左子树,最后递归遍历右子树。按照这个规则,对图中二叉树进行先序遍历:首先访问根节点 1。然后遍历 1 的左子树,左子树的根是 2,访问 2;接着遍历 2 的左子树,根是 4,

#算法#数据结构
S3--不带头结点不带结构体的链表--二级指针实现

在真实开发中,不带头节点且不用结构体的链表几乎不会存在,因为结构体是封装节点(数据 + 指针)的最自然方式。先掌握带结构体、带头节点的链表(更规范、易维护)。再理解不带头节点的链表(需注意空链表、只有一个节点等边界情况)。如果你是初学者,建议从带结构体的带头节点链表入手,先掌握标准的实现方式,再深入理解各种变体的差异~

#链表#数据结构
c14 lambda表达式

可以在需要函数的地方直接定义,避免编写独立函数或仿函数。灵活的捕获机制,可访问外部变量。与 STL 算法、线程等特性无缝配合,大幅提升代码可读性和开发效率。掌握 lambda 是编写现代 C++ 代码的必备技能,尤其在泛型编程和异步编程中应用广泛。

#c++
S3--2.2无结构体管理的单链表

无结构体管理单链表的优缺点优点内存效率高:没有额外的结构体开销教学价值:更好地理解指针操作的本质代码简洁:对于简单应用足够使用缺点安全性差:容易产生野指针和内存泄漏效率低:获取大小需要O(n)时间使用复杂:需要处理更多边界条件可维护性差:接口不够清晰。

#链表
S31 B树详解

BTNode;}Btree;bool tag;int index;}Result;变量M为该B树为M阶B树BTNode结构体中的key_num为该节点存储的多少个元素key_arr为存储的值prt_arr为其数组的左右子树。Result结构体为返回的结构体节点数据。

文章图片
#b树#数据结构
C++28 STL容器--array

include <array> // 必须包含头文件// 方式1:默认初始化(内置类型为随机值,类类型调用默认构造)// 方式2:聚合初始化(类似C数组,推荐)// C++11起支持列表初始化// 方式3:部分初始化(未初始化的元素补0)// 结果:[1,2,0,0,0]// 方式4:填充初始化(所有元素设为同一值)// 结果:[8,8,8,8,8]return 0;std::array是 C 静

#c++#开发语言
C++29 STL容器--vector数组

vector是动态连续数组,核心优势是随机访问快、尾部操作高效;pop_back()(尾部)、[]/at()(访问)、size()empty()(属性);性能优化关键:用reserve()预分配容量,避免频繁扩容;避坑重点:扩容后迭代器失效、区分size()和capacity()、越界访问用at()。

#c++#java#算法
C++30 STL容器 -deque双端队列

deque核心优势是双端高效操作(头部 / 尾部增删均为 O (1)),弥补了 vector 头部操作低效的缺点;基础用法和 vector 高度相似,重点记住这两个独有的高效方法;与 vector 的核心区别在内存布局:deque 分段连续,无容量概念,迭代器稳定性略优;选型原则:头部操作多选 deque,仅尾部操作 + 极致随机访问选 vector。

#c++#开发语言
    共 49 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 请选择