- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 数据逻辑结构
数据的逻辑结构有两个要素:一是数据元素的集合,通常记为 D;二是 D 上的关系,它反映了 D 中各数据元素之间的前后件关系,通常记为 R。为了反映 D 中各数据元素之间的前后件关系,一般用二元组来表示。例如,假设 a 与 b 是 D 中的两个数据,则二元组( a,b )表示 a 是 b 的前件, b 是 a 的后件。②每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构。本题数据结构中没有根结点,因此它是非线性结构。该数据结构为( )。
2022-09-18 21:52:16
597
原创 ORBSLAM system类代码架构
/这里的帧绘制器和地图绘制器将会被可视化的Viewer所使用。//如果指定了,程序的运行过程中需要运行可视化部分。以下 1-12 步都是初始化system 构造函数。//给运动追踪器设置其查看器。//新建viewer线程。//新建viewer。//获取字典加载状态。//设置进程间的指针。//建立一个新的ORB字典。1.2.1 变为纯定位模式。1.2.1恢复定位建图模式。//运行这个局部建图线程。//创建回环检测线程。没有这个模式转换标志。没有这个模式转换标志。为什么这个要设置成为。
2022-09-13 14:55:33
897
原创 ORBSLAM初始化论文与代码详解
地图初始化的目的是计算初始相邻两帧的相对位姿,并通过三角化初始地图点。这个阶段应该不依赖场景结构(也就是说不管是平面还是非平面算法都应该生效),也不需要人的干预。算法的步骤如下:1.寻找初始化对应点。给参考帧(第一帧),与当前帧(第二帧)分别提取ORB特征点,并进行特征匹配,如果没有足够多的匹配点,则重新设置参考帧(注意是参考帧也就是第一帧)。2.并行计算单应矩阵与基础矩阵(这一部分很多内容,具体见程序部分)。
2022-09-12 14:38:26
883
原创 ubuntu安装软件依赖问题
依赖: dpkg-dev (>= 1.17.11) 但是它将不会被安装。依赖: gcc (>= 4:7.2) 但是它将不会被安装。依赖: g++ (>= 4:7.2) 但是它将不会被安装。build-essential : 依赖: libc6-dev 但是它将不会被安装 或。E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。(3)将(2)中以下内容复制到(1)中文件中。因为系统无法达到您要求的状态造成的。2. 也不必使用aptitude。3.参照以下步骤解决。
2022-09-11 17:25:05
4515
原创 线性表实现整数求和
#include<iostream>using namespace std;const int Max_size = 100; //顺序表的最大长度template<typename T>class SeqList{public: SeqList():length_(0){} SeqList(T*input_array,int length); ~SeqList(){}; int Length(); void Ins.
2022-04-24 10:25:54
289
原创 单链表实现
头插法,尾插法,插入,删除等等#include<iostream>using namespace std;struct Node{ int data; Node* next;};// 单链表class LinkList{public: LinkList(); LinkList(int* input_array,int length,bool is_head_insert); //LinkList(int* input_arr
2022-04-23 16:44:46
930
原创 顺序表的实现
#include<iostream>using namespace std;const int Max_size = 100; //顺序表的最大长度template<typename T>class SeqList{public: SeqList():length_(0),data(nullptr){} SeqList(T*input_array,int length); ~SeqList(){}; int Length();.
2022-04-23 14:35:16
127
原创 堆排序算法
#include<iostream>#include<ctime>using namespace std;template<typename T>void heap_swap(T&a,T&b);template<typename T>void Heap_big_update(T*input_array,int length,int index);template<typename T>void Heap_b.
2022-04-22 21:19:47
334
原创 归并排序算法
#include<iostream>#include<cmath>#include<ctime>using namespace std;template<typename T>T* Merge(T*a,int size_a,T*b,int size_b);template<typename T>void Merge_sort(T*input_array,int size_input);int main(){ i.
2022-04-22 16:58:51
777
原创 插入排序实现
#include<iostream>using namespace std;//假设传入的是一个数组类型的数据template<typename T>void Insert_sort(T*array,int size);int main(){ int a[] ={31,12,3,1,2,9,8,4,2,6,3}; cout<<"原始数据:"<<endl; for(int i = 0;i<11;i++){ .
2022-04-21 18:46:29
746
转载 lamda 表达式
[](int x, int y) -> int { int z = x + y; return z + x; }[] // 沒有定义任何变量。使用未定义变量会引发错误。[x, &y] // x以传值方式传入(默认),y以引用方式传入。[&] // 任何被使用到的外部变量都隐式地以引用方式加以引用。[=] // 任何被使用到的外部变量都隐式地以传值方式加以引用。[&, x] // x显式地以传值方式加以引用。其余变量以引用方式加以引用。.
2022-04-19 22:20:20
73
转载 Static与Const的区别
Static与Const的区别staticstatic局部变量 将一个变量声明为函数的局部变量,那么这个局部变量在函数执行完成之后不会被释放,而是继续保留在内存中 static 全局变量 表示一个变量在当前文件的全局内可访问 static 函数 表示一个函数只能在当前文件中被访问 static 类成员变量 表示这个成员为全类所共有 static 类成员函数 表示这个函数为全类所共有,而且只能访问静态成员变量constconst 常量:定义时就初始化,以后不能更改。 const 形参:
2022-04-19 21:07:02
79
原创 float double 类型如何存取浮点数
仅用于记录学习过程 针对一个浮点数如:13.625我们可以写成二进制: 1101.101用科学计数法表示:1.101101 *2^3我们说他的指数为:3指数部分有特殊的存储规则:存储真实指数+指数部分存储范围一半的数值即:float为例 :2^7-1 = 127 127+3 = 130130-->二进制 10000010因为改写为二进制以后,第一位肯定为1,所以我们不保存第一位我们称他的尾数部分为:101101为正数:符号...
2022-04-19 20:50:25
121
原创 c++ typedef 与define
仅用于记录学习过程typedef 用于定义类型的别名#define 既可用于为类型取别名,也可以定义常量等typedef 在编译阶段有效#define 是在预编译阶段对指针操作时:typedef int * pint;#define PINT int * int i1 = 1, i2 = 2; const pint p1 = &i1; //p不可更改,p指向的内容可以更改,相当于 int * const p;const P...
2022-04-19 20:09:24
769
原创 PMVS原理详解
PMVS一 .首先介绍一下算法中的用到的一些公式与概念1.1面片模型 大家想象一下我们学微积分时,处理曲线时我们将曲线可以看成一小段一小段的直线,化曲为直来处理曲线。现在我们将这个思想扩展到曲面上,想象一个物体的表面,在充分小的一个邻域内,我们可以用一个规则的矩形来表示那个邻域内的曲面。这个矩形在PMVS中也就叫做面片(p)...
2022-01-02 21:26:42
4220
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人