- 博客(10)
- 收藏
- 关注
原创 std::deque的内存扩展管理机制
数据存储:数据分布在多个缓冲区中,每个缓冲区可以容纳一定数量的元素。这些缓冲区通过一个指针数组(map)来管理。扩展缓冲区和map当需要更多内存时,std::deque会分配新的缓冲区并扩展map,将新的缓冲区指针添加到map中。缓冲区是固定大小的,因此当缓冲区满时,std::deque会分配新的缓冲区。finish和start指针finish指向队列的尾部,指向最后一个元素的下一个位置;start指向队列的头部。dequestd::deque采用了分段存储。
2024-11-25 19:50:30
1007
原创 剑指offer——面试题5 替换空格
题目:请实现一个函数,把字符串中的每个空格替换成"%20"。这种题分为两个方向。一是在原来的字符串上进行替换;二是创建新的字符串并在新的字符串上进行替换。:原来写的,测试时,case3不能通过。原因是没考虑nums1为内没有元素的情况。思路:使用双指针,P1指向原始字符串的末尾,P2指向替换之后的字符串的末尾。创建一个新数组,将原来的数组拷贝进去。这是从前到后替换的思路。最终,合并后数组不应由函数返回,而是存储在数组。个元素表示应合并的元素,后。中,使合并后的数组同样按。
2024-11-24 22:35:58
373
原创 二叉树的三种遍历方式及C++代码实现
前序遍历:先访问根,再左再右。中序遍历:先左再根再右。后序遍历:先左再右再根。实现方法有递归、非递归(使用栈)、Morris遍历(空间优化)。其中,递归最直观,栈实现可避免递归深度过深的问题,而 Morris 遍历通过修改树结构避免使用额外的空间,是一种空间优化的实现方法。
2024-11-24 22:32:24
907
原创 C++——Observer设计模式(侯捷面向高级对象编程)
事件驱动系统:比如 GUI 系统中,按钮点击事件通知多个监听器。数据变化的多视图更新:如 MVC 模式中,模型变化时,通知视图更新。分布式系统中的状态同步:多个模块依赖某一模块的状态变化。Observer 模式非常适合那些需要状态变化通知机制的场景,它提供了一种优雅的方式来管理对象之间的依赖关系。
2024-09-22 14:48:24
1026
原创 C++——Template Method设计模式
侯捷面向对象高级编程–Template Method设计模式这个代码展示了的应用。在这个模式中,基类定义了算法的框架,具体的实现步骤由子类来完成。基类提供了一个通用的操作骨架(即模板方法),其中可以调用一些可由子类覆盖的抽象方法或虚方法,子类可以通过重写这些方法来实现具体行为。
2024-09-21 14:09:59
903
原创 ROS学习笔记(1)——前序操作
node ‘文件夹’ : 运行 node 文件。dir : 显示当前目录的子文件夹与文件。node -v : node 的版本号。cd \ : 跳转到硬盘的根目录。Ubuntu 中文输入法的安装。上下方向键 : 翻看查看过的命令。cd ‘文件夹’ : 进入文件夹。: 返回上一层目录。ctrl+L 快速清空终端界面。mkdir : 创建文件夹。ubuntu 主题安装。del : 删除文件夹。linux 命令大全。tab : 补全功能。
2023-10-14 19:52:12
97
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人