- 博客(27)
- 收藏
- 关注
原创 OJ题之单链表排序
数据范围:0<n≤1000000<n≤100000,保证节点权值在[−109,109][−109,109]之内。采用分治法,将链表分成两半,递归地排序每一半,然后合并两个已排序的链表。通过重复遍历链表,比较相邻元素并交换位置,直到整个链表有序。要求:空间复杂度 O(n),时间复杂度 O(nlogn)每次遍历链表找到最小元素,将其与当前元素交换位置。给定一个节点数为n的无序单链表,对其按升序排序。
2024-09-29 15:29:59
499
原创 C++之仿函数和虚函数
仿函数(也称为函数对象)是指可以像函数一样调用的对象。它通过重载类中的operator()实现函数调用的行为。虚函数是指在基类中声明并且可以在派生类中被重写的成员函数。虚函数的主要目的是支持多态,即通过基类指针或引用调用派生类的实现。仿函数是一种让对象具备函数调用能力的机制,常用于算法库和模板编程中,适合需要在对象中保存状态的场景。虚函数是用于继承体系中的多态实现,通过基类指针或引用在运行时决定调用哪个类的函数版本,通常用于面向对象编程的多态设计。
2024-09-18 21:12:36
573
原创 OJ题-合并K个已排序的链表
优先队列法适合需要立即获取最小节点的情况,效率较高。分治法适合逐步合并的方式,利用了归并排序的思想,递归实现较为直观。
2024-09-18 21:07:58
917
原创 C++之继承
派生类的构造函数必须调用基类的构造函数初始化基类的那一部分成员。如果基类没有默认的构造函数,则必须在派生类构造函数的初始化列表阶段显示调用。派生类的析构函数会在被调用完成后自动调用基类的析构函数清理基类成员。的意思就是指我们不写,编译器会变我们自动生成一个,那么在派生类 中,这几个成员函数是如何生成的呢?继承一定程度破坏了基类的封装,基类的改变,对派生类有很。实际尽量多去用组合。派生类的拷贝构造函数必须调用基类的拷贝构造完成基类的拷贝初始化。继承下来的成员都只能在派生类的类里面使用,实际中扩展维护性不强。
2024-09-17 17:09:16
1033
原创 vector和list的区别
使用:当你需要高效的随机访问,并且在容器的末尾插入/删除元素时,是一个更好的选择。使用std::list:当你需要在容器的任意位置高效地插入/删除元素,而不关心随机访问的性能时,std::list是一个更合适的选择。
2024-09-13 20:48:30
900
原创 List-带头结点的双向循环链表
STL库中常用的封装好的string(专门用来处理字符串)以及vector(储存任意类型)还有list。前两种在存储空间上地址都是连续的,但是list存储地址不一定是连续的,list的底层实际是用一个带头双向循环链表实现下面为了更加深入了解学习list先手动写一个带头双向循环链表。下面是我用C++写的。
2024-09-10 21:00:45
916
原创 一文分清目标检测 抓取检测 和位姿估计
不过,目标检测只能确定物体的2D位置(在图像平面上),不能提供物体的3D位姿(位置和朝向),因此通常需要与其他算法(如位姿估计)结合使用。例如,位姿估计提供准确的物体位置信息,而抓取检测则优化具体的抓取策略,确保机械臂以最佳姿势抓取目标物体。:使用深度学习模型(如GraspNet)来预测物体表面上多个潜在的抓取点及其对应的抓取姿势(如抓取的角度和位置)。通过这个设计,抓取检测确保了在动态场景下找到稳定的抓取点,而位姿估计提供物体的空间位置信息,确保抓取的精确度。位姿估计的任务是确定物体在三维空间中的。
2024-09-10 20:52:55
2507
1
原创 C++中野指针和指针
int x = 10;// ptr 是一个指向 x 的指针,存储的是 x 的内存地址// 输出 x 的内存地址// 通过指针访问 x 的值*ptr = 20;// 通过指针修改 x 的值return 0;指针是 C++ 中强大的工具,但如果使用不当,特别是在处理内存管理时,容易引发野指针问题。了解指针的基本操作、内存管理规则,并通过合理的编程习惯(如初始化指针、使用智能指针等)可以有效避免野指针带来的潜在风险。
2024-09-07 17:16:12
558
原创 C++中STL库的string和vector
专为字符串操作设计,提供方便的字符串操作方法,支持自动管理内存。:动态数组容器,允许高效的随机访问和动态管理数组大小,适合存储一组相同类型的数据。
2024-09-07 17:06:08
740
原创 详细介绍union
union的定义与structint i;float f;char c;MyUnion u;u.i = 10;u.c = 'A';return 0;union在C和C++编程中提供了一种高效、灵活的方式来管理不同类型的数据,但由于其共享内存的特性,使用时需要小心谨慎,以避免意外的错误或未定义的行为。
2024-08-28 15:35:38
704
原创 深度解析const static typedef define 区别和作用
const:用于定义不可变的常量,增强代码的安全性和可读性。static:根据上下文不同,用于定义静态局部变量、静态全局变量和类的静态成员,控制变量的生命周期和作用域。typedef:用于为现有类型定义别名,简化复杂类型的使用。#define:预处理指令,用于定义宏,实现简单的文本替换和条件编译。
2024-08-27 19:53:17
818
原创 经典OJ题之有效的括号
如果是左括号,入栈如果是右括号,取栈顶元素跟右括号进行匹配匹配,出栈。不匹配,return false。,判断字符串是否有效。解题思路:定义一个栈结构。
2024-08-24 17:06:11
461
原创 栈和队列OJ题之用栈实现队列
思路:创建两个栈pushST、popST,分别用来入队列和出队列入队列:直接往pushST插入数据出队列:popST不为空出数据,如果为空把pushST里的数据倒过来后再出数据。题目描述:请你仅用两个栈实现先入先出队列。boolean empty()如果队列为空,返回true;否则,返回false。void push(int x)将元素x推到队列的末尾。int pop()从队列的开头移除元素并返回元素。int peek()返回队列开头的元素。tips:栈:先进后出 队列:先进先出。
2024-08-24 16:27:35
357
原创 移动小车导航slam建图
移动小车SLAM建图在机器人导航、自动驾驶和环境感知等领域具有广泛的应用。SLAM旨在通过融合来自激光雷达、摄像头或惯性测量单元等传感器的信息,实现机器人在未知环境中的同时自主定位和地图构建。在实验部分,我们描述了我们设计的移动小车SLAM建图系统的实施。
2024-08-20 22:43:02
1857
原创 C++函数重载及引用
函数重载:是函数的一种特殊情况,C++允许形参列表(参数个数 或 类型 或 类型顺序)不同一作用域中声明几个功能类似的同名函数,这些同名函数常用来处理实现功能类似数据类型不同的问题。最简单的理解就是同义词,同一个函数名称但是针对不同类型的数据。函数重载调用原理:到底要调用那个重载的函数?编译器在编译阶段(四个阶段:预处理、编译、汇编和链接)已经确定好了。在编译阶段,编译器会对传递的实参类型进行推演,根据推演的结果选择合适的重载函数进行调用。
2024-07-11 10:18:43
360
1
原创 2-%d\n是什么?怎么用
见过几个短程序后你会发现,有时候在printf输出的括号里面有%d\n甚至其他字符例如&但自己在用的时候不名所以只知道要放上去。
2022-11-05 10:10:50
1596
原创 在pycharm中打开绘制的tensorboard图
在项目里找到储存的log文件右键打开于选择终端在终端路径下输入tensorboard --logdir 加你自己的log文件path也可以直接在项目里找到log文件右键选择复制路径选择绝对路径粘贴到语句后面即可。再出来的 语句里复制网址并打开即可得到...
2022-05-09 15:43:01
1629
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅