自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 运行aloam出现的bug:CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package)

这两行加到了上面set那一块,而没有直接加在#find_package(OpenCV REQUIRED)下面。即cmakelists的这里。我在更改opencv的配置。

2024-04-22 20:30:27 280 1

原创 slam_in_autonomous_driving/thirdparty/g2o/g2o/core/openmp_mutex.h:30:10: fatal error: g2o/config.h解决

此时直接cmake的书代码会报slam_in_autonomous_driving/thirdparty/g2o/g2o/core/openmp_mutex.h:30:10: fatal error: g2o/config.h。这个时候将g2o/build/g2o下的config.h复制到slam_in_autonomous_driving/g2o下即可。若在g2o库下新建build,然后cd build、cmake…然后用这下面的g2o库。

2024-04-09 19:13:32 269

原创 lego-loam代码解析(2)-自用

学习文章:[1]LeGO-LOAM分析之建图(三)[2] LeGo-LOAM 源码解析-WinFrom控件库[3] LeGO-LOAM批注版[4]LeGO-LOAM 源码阅读笔记(mapOptmization.cpp)整合拼起来的,自用关于transformFusion.cpp 融合粗、精配准的里程计信息学习文章:LeGo-LOAM源码阅读笔记(五)—transformFusion.cppmapOptimization整体介绍整体功能分为回环检测、可视化以及位姿全局优化,核心是位姿优化

2024-04-08 15:27:21 974

原创 lego-loam代码解析(1)-自用

学习文章:[1][2][3]本来想接着拼合阅读featureAssociation部分,但是尝试了一下搞出来发现结构并不是很清晰,而且也不懂里面的原理。找了一篇文章发现写的,打算按照按文章和代码批注版进行学习。

2024-04-06 16:47:18 952

原创 高翔视觉slam十四讲slambook2/ch7/orb_cv.cpp报错 Sophus could not be found because dependency Eigen3 could not

我在网上找了好久的bug解决方案,g2o版本问题啊,eigen3版本问题啊,sophus版本问题啊,都没有解决。CMakeLists文件添加。

2024-04-05 21:36:52 216

原创 代码随想录算法训练营第十六天 | 104.二叉树的最大深度、559.n叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

年后补咯。

2024-02-09 18:55:27 127

原创 代码随想录算法训练营第十五天 | 102.层序遍历、226.翻转二叉树、101.对称二叉树

题目链接:https://leetcode.cn/problems/binary-tree-level-order-traversal/文章讲解:https://programmercarl.com/0102.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86.html视频讲解:https://www.bilibili.com/video/BV1GY4y1u7b2。

2024-02-08 19:12:30 142

原创 代码随想录算法训练营第十四天 | 理论基础、递归遍历、迭代遍历、统一迭代

补2.6二叉树的种类主要有:满二叉树、完全二叉树(除了最底层节点可能没填满,其他层的节点都填满了,最底层的节点都集中在最左边的位置)、二叉搜索树(有数值,左子树都小于根节点,右子树都大于根节点)、平衡二叉搜索树(在二叉搜索树的基础上满足左子树和右子树的高度差最大为1)另外:C++中map、set、multimap,multiset的底层实现都是平衡二叉搜索树,所以map、set的增删操作时间时间复杂度是logn,注意这里没有说unordered_map、unordered_set,unordered_m

2024-02-07 18:59:21 264

原创 代码随想录算法训练营第十三天 | 239. 滑动窗口最大值、347.前 K 个高频元素

2.4是休息日,补2.5。

2024-02-06 17:10:16 179

原创 代码随想录算法训练营第十一天 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

题目链接:https://leetcode.cn/problems/valid-parentheses/文章讲解:https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B7.html视频讲解:https://www.bilibili.com/video/BV1AF411w78g状态:不会。

2024-02-04 16:31:46 319

原创 代码随想录算法训练营第十天 | 232.用栈实现队列、225. 用队列实现栈

补2月2。

2024-02-03 15:52:26 315

原创 代码随想录算法训练营第九天 | 所学知识的回顾 | 数组、链表、哈希表、字符串

本来今天是要学KMP,但是时间安排不合理,今天就只对前面的内容做个总结,画了个思维导图,KMP准备这段时间看看了解一下思想数组篇:https://programmercarl.com/%E6%95%B0%E7%BB%84%E6%80%BB%E7%BB%93%E7%AF%87.html链表篇:https://programmercarl.com/%E9%93%BE%E8%A1%A8%E6%80%BB%E7%BB%93%E7%AF%87.html。

2024-02-02 01:38:14 241

原创 代码随想录算法训练营第八天 | 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

先把整个字符串反转,再去反转里面的每个单词,然后再去除多余的空格,在去除空格时,去用快慢指针,快指针先找到第一个单词的首字母,更新slow,然后一个指针指向原内容最后一个,一个指针指向新数组最后一位,进行判断并填充。先审题,我们会发现当尾部,不足n个,全部反转,尾部>=n个,反转前面n个。reverse的实现,单词最后一个的情况,反转单词时start的运用。②使用库函数,注意reverse的用法,是左闭右开的。联想上一道,可以先整体再局部,当然也可以先局部后整体。反转经常有先整体再局部的思想。

2024-01-31 22:26:31 295

原创 代码随想录算法训练营第七天 | 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

我先用hash数组试了一下,结果不会处理,然后用map成了,关于map,就是把magazine的元素存储在map中,然后在遍历ransomNote时,去在map查找,若找到就-1,并不时的判断是否小于等于0了。本题的话,四数相加可以搞成两个数之和,每两个两个的去循环,把前两个的和装入map,每次在对应位置加1,遍历后两个数组的和的时候,用target减去后两个数组的和,在map中去找。在对i去重的时候,有nums[i]==nums[i+1]和nums[i]==nums[i-1],为什么用后一种呢?

2024-01-31 01:20:30 183

原创 代码随想录算法训练营第六天 | 哈希表理论基础 、242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

但是这题正常来说该用我们说的set来做补充一下Set.find的用法如果找到元素,则返回指向该元素的迭代器,否则返回指向集合末尾的迭代器,即set :: end()。

2024-01-30 01:51:00 380

原创 代码随想录算法训练营第四天 | 24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07.链表相交、142.环形链表Ⅱ

大题思想是一样的,不过这里是从虚拟头节点出发为cur,我自己是把虚拟头节点当成了pre开始出发,二者比较起来的差异就是我自己写的时候,我是从头节点开始跳的,1-3-。先让快指针比慢指针先走n步,然后再快慢指针一起走,到最后快指针为空指针时,此时慢指针就是我们要删除的节点,我们删除节点时一般看前一个节点,因此快指针需要先走n+1步。利用上一题删除倒数第N个元素的思想,两个链表若有交叉点,则结尾后一段一定是相等的,因此我们可以让长度长的链表先走,让两个链表末位对齐,然后就是同步走,直至找到节点相等的位置。

2024-01-27 22:37:09 242

原创 代码随想录算法训练营第三天 | 203.移除链表元素、707.设计链表、206反转链表

今天白天在忙着完成老师布置的任务,晚上吃过晚饭完了一个小时,从9点开始,就完成了一道完整的题,为了防止赶不上,这个卡我今天先打了,明天再回来补充设计链表的代码,寻找自己写不出代码的困难在哪里,以及完整的做一遍反转链表。同时,自己在实现while循环中的if语句时,后来省略else发现行不通,因为此时满足if是另一种条件的不必再else了,因此想省去要考虑能否成功。同时也可以使用虚拟的头节点来避免头节点和后面的节点操作不一致的问题\。利用虚拟头节点,一步步去按照链接的增删改查去实现。正常的链表删除节点操作。

2024-01-26 22:45:13 294

原创 代码随想录算法训练营第二天 | 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵Ⅱ

要制定一定的规则,也就是循环不变量,区间,循环条件是什么,在这里我们发现每转一圈会少两行,所以条件是n每次缩小一半,这里有个技巧:把矩阵上下切开,上面几条边就是几圈。首先这个while的循环条件,我开始直接用的while(n/2),这是行不通的,因为n没有改变,所以要用loop=n/2,while(loop–),注意滑动的时候要记录subLength的值,在移动后发现不满足条件了,证明此起始位置在目前的窗口不满足,要终止位置继续向前移动。另外,在处理每次缩小一半为条件时,可以用loop=n/2;

2024-01-25 21:29:59 382

原创 代码随想录算法训练营第一天 | 704.二分查找、27.移除元素

在更新right时,若right=mid,但是mid已经判断过了,在[left,right]区间上会重复判断,更新left时同理。双指针,设置快慢指针,快指针用来获取新元素,来逐个判断是否满足条件,将满足条件的值放在慢指针为下标的数组里,是在一个数组里进行的。在更新right时,若right=mid,mid已经判断过了,但在[left,right)区间上right是不用判断的因此可以。,然后确定区间,根据区间去定义边界条件,看看在边界处是否有定义,在考虑左右指针更新时,看看是否区间边界值是否判断过。

2024-01-24 17:57:56 423

原创 Junit,反射,枚举(小白)(供个人学习使用)

反射其实就是解剖一个类,获取类中的各项信息(构造方法,成员变量,成员方法)法医解剖人的尸体,人体内又很多器官(心肝脾肺肾),法医获取这些器官程序员解剖一个类,类种有构造方法信息,成员变量信息,成员方法信息,程序员获取这些信息其实就是一一列举,如果某些变量的取值是固定几个值中其中一个,我们就考虑顶定义枚举例如:星期(一-日)月份(1-12月)性别(男,女)

2023-12-27 11:03:01 971

原创 如何打开别人的Javase代码学习(小白)(仅供个人学习使用)

依次点击modules src sources。打开project structure。将代码文件夹复制到project下。apply ok 就好了。

2023-12-02 14:10:22 318

原创 super语句的注意事项

如果在一个构造方法中存在this语句,子类的构造方法依然可以调用父类的构造方法,只不过不是存在this的构造方法。在同一个构造方法中this(参数)语句和super(参数)语句都必须放在第一行,那么。构造方法中如果没有super语句,默认在构造方法的第一行会加一个super()语句。所有的子类的构造方法一定会调用父类的构造方法。

2023-05-24 19:06:44 69

原创 抽象类中的抽象方法和非抽象方法

​ 抽象类可以实现接口,接口中的方法在抽象类中可以不被重写实现,当有子类继承抽象类时,并且子类不是抽象类,子类需要将抽象类中的抽象方法和接口中的方法都重写实现。​ 首先,抽象类中不是必须要具有抽象方法的。但是包含抽象方法的一定为抽象类,既方法和类都需加上。​ 若一个方法为抽象方法,意味着这个方法必须被子类的方法所重写,,则需要一个子类继承抽象类,然后用子类的实例来调用方法。​ 调用抽象类中的抽象方法以及非抽象方法,如果方法是。

2023-05-24 11:49:39 540

原创 显示文件后缀名

如果看不到文件后缀名,可以点击“此电脑”,点击“查看”,将文件扩展名勾上即可。

2023-05-21 22:08:36 63

原创 使用Map对员工的编号工资排序(TreeMap练习)TreeMap遇到NullPointException

public class Employee implements Comparable{ private String name; private Integer salary; private Integer id; public Employee() { super(); } public Employee(String name, Integer id) { super(); this.name = name; this.id = id; } public Em.

2021-09-10 16:31:52 183

原创 使用HashMap去存储多本图书(HashMap练习)

要求【HashMap练习】案例:使用HashMap去存储多本图书1、 要求定义一个图书类:包括编号、书名,作者和价格进行封装2、 要求定义一个图书馆类,里面定义一个HashMap对象,键为图书类型的对象,值为价格。3、 里面定义方法可以实现对图书的添加、删除、查找、修改,遍历4、 要求图书名称和编号相同的为同一本书代码Book 类public class Book { private int bookId; private String bookName; private Strin

2021-09-09 21:50:53 543

原创 实现员工年龄排序(TreeSet练习)

定义一个Employee类,该类包含: private成员变量name, age, birthday,其中birthday 为MyDate 类的对象;并为每一个属性定义getter,setter方法;并重写toString方法输出name,age,birthdayMyDate类包含:private)成员变量month, day, year;并为每一个属性定义getter,setter 方法;创建该类的5个对象,并把这些对象放入TreeSet集合中,对集合中的元素进行排序,并遍历输出:使Employ

2021-09-01 17:26:33 500

原创 使用TreeSet,关于重写compareTo()方法 升序降序问题(适合Java小白)

首先,我们要了解TreeSet点击 TreeSet 的源码我们可以看到 TreeSet 的底层是 TreeMap而 TreeMap 的底层是基于红黑树实现的,那么什么是红黑树呢?那我们就不得不提到二叉树,因为红黑树是二叉树的升级版二叉树直接举一个栗子吧开始我们只有一个 50然后我们要插入一个元素 30 ,因为比 50 小,插入左边然后我们要插入一个元素 60 ,因为比 50 大,所以要插入右边然后我们要插入一个元素 50,因为已有了 50,所以不必再插入,同样现在有30和40,若要再

2021-09-01 15:54:40 2057

原创 selenium自动化测试操作自己遇到的问题

首先为了方便起见,我们需要设置一些路径这里需注意:chrome和chromedriver的版本一定要对应也可以使用System.setProperty(“webdriver.chrome.driver”, “.......”);(这个本人未尝试)每进行一个操作需要设置反应时间Thread.sleep(2000);打开网址driver.get();查找元素driver.findElement(By.xpath());点击driver.findElement(By.xpath()).cli

2021-08-22 16:13:07 265

原创 java简单小日历(适合刚学完时间类)

要求话不多说,上代码import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Scanner;public class Test { public static void main(String[] args)

2021-08-15 19:05:04 161

转载 什么是JavaBean,JavaBean作用

JavaBean定义:一个Java类满足以下2点 ,就可以称为JavaBean:public 修饰的类 ,public 无参构造所有属性(如果有) 都是private,并且提供set/get (如果boolean 则get 可以替换成is)javaBean分两种第一种:封装数据的JavaBean这种JavaBean也被叫做实体类,一般来说对应的是数据库中的一张表,例如这样的↓:public class UserDemo { private int id; private Strin

2021-08-09 12:59:52 13060

原创 java内存分析、staic内存分析

2021-07-30首先,我们需要了解主要的的内存机制栈:存放:局部变量、方法先进后出,自下而上存储方法执行完毕,自动释放空间堆:存放new出来的对象需要垃圾回收器来回收方法区:存放:类的信息(代码)、 static变量、字符串常量等.(注意:只列举了部分作用)以下面代码举例进行内存分析class Person{ String name; int age; public void show(){ System.ou

2021-07-30 13:48:23 205 1

转载 java中next()和nextLine()的区别

java中的next()和nextLine()还是有很大区别的。next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。完整标记的前后是与分隔模式匹配的输入信息所以next()不能得到带空格的字符串,而nextLine()是遇到回车是才结束,所以可以得到带空格的字符串在输入一个int类型的数字之后,如果后边采用

2021-07-23 19:44:16 462

原创 if-else-if语句和多个if语句的区别

if-else-if 语句是按照顺序进行判断的,只会输出满足条件的第一个,忽略剩余的判断多个 if 语句是按照顺序进行判断的,会输出所有满足条件的int a = 10;if(a < 12){ System.out.println("小于12");}else if(a < 15){ System.out.println("小于15");}// 答案为 小于12if(a < 12){ System.out.println("小于12");}if(a < 15){

2021-07-21 21:41:48 608

转载 空数组和null数组

编程题中经常遇到,对于数组首先判断:private static void test(int[] a) { if (a == null || a.length==0) { return; } }常见的形式有三种:语句1:int[] a; //只是声明了一个数组变量,并未初始化,无法使用。语句2:int[] a = null;//声明了一个数组变量,赋值为 null;语句3:int[] a = new int[0];//声明并创建一个

2021-06-23 19:21:16 2055

原创 Java数据类型

Java数据类型Java 语言支持的类型分为两类:基本类型和引用类型。基本类型基本类型包括 boolean 类型和数值类型。数值类型有整数类型和浮点类型。整数类型包括 byte 、short、int、long、char,浮点类型包括 float 和 double 。有的时候也把 char 型称为字符型,实际上字符型也是一种整数类型。引用类型引用类型包括类、接口和数组类型,还有一种特殊的 null 类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。空类型( null type

2021-06-23 12:33:44 94

转载 Intellij IDEA中如何给main方法赋args

Intellij IDEA中如何给main方法赋args程序package com.otherExample;/** 1. Created by 谭雪娇 on 2017/3/29. */public class args { public static void main(String[] args){ System.out.println(args.length); System.out.println(args[0]); System

2021-06-13 21:53:21 742

原创 Path和classpath的区别

我们编写的代码是源代码需要用到javac命令来将源文件(.java)转换为字节码(.class)然后需要用到java命令解释执行平台无关的字节码程序但是我们并不可以直接使用java和javac命令,因为计算机不知道去哪里找这两个命令windows操作系统根据Path环境来查找命令所以Path环境变量需要指向含有java和javac的文件,而java和javac命令在jdk的bin目录下,所以Path需要指向jdk下的bin目录bin目录下存放了JDK的各种工具命令而关于calsspath环境变量,在w

2021-03-09 21:02:45 325

转载 指针

每一个标量都有一个内存位置,每一个内存位置都定义了可使用&运算符访问的地址,它表示了在内存中的一个地址#include<stdio.h>int main(){ int var_runoob=10; int *p; //定义指针变量 p=&var_runoob; printf("var_runoob变量的地址: %p\n",p); //其中%p的p是指针的缩写,%p输出十六进制的值 return 0; }什么是指针?指针是

2021-01-23 15:07:51 111

Intellij配置及快捷键(不包含破解)

此为比屋教育课件,如有侵权,请联系我删除

2023-01-12

软件评测师考试大纲.docx

2021新版考试要求和考试范围

2021-09-02

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除