- 博客(31)
- 资源 (2)
- 收藏
- 关注
转载 C++系列(四)为什么析构函数一般写成虚函数
参考基类指针指向派生类对象,在删除指针时,会调用派生类的析构函数,派生类的析构函数会自动调用基类的析构函数,这样整个派生类的对象会被完全释放。如果基类的析构函数不被声明为虚函数,在删除基类指针时,只会调用基类的析构函数,不会调用派生类的析构函数,造成内存泄露。下面举例说明#include "stdafx.h"#include <iostream>using namespace std;class parent{public: parent() { cout <&l
2021-03-09 22:24:57 246
原创 C++系列(三)深浅拷贝
深浅拷贝浅拷贝是利用同一类型的对象之间的成员变量进行简单的赋值。当类中有指针时,并且指针指向动态分配的内存空间,析构函数做了动态内存释放的处理,浅拷贝会导致内存问题。此时我们需要自定义拷贝构造函数例如#include <iostream>using namespace std;class person{public : int m_A; int m_B; person(int x) { m_P = new int(x); } //深拷贝 //person(
2021-02-15 20:44:30 186
原创 C++系列(二)引用&
引用1、引用必须要初始化,引用初始化后不可改变2、引用的本质是指针常量#include <iostream>using namespace std;int main(int argc, char **argv){ int a = 10; //int &b;//错误,必须要初始化 int &b = a; b = 30; cout << "a= " << a << endl; cout
2021-02-05 20:14:02 184 3
原创 C++系列(一)静态变量static
static是C/c++中的修饰符,用来控制变量的存储方式和可见性。静态变量和静态方法static关键字最基本的用法是:1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来被static修饰的变量、被static修饰的方法统一属于类的静态资源,是类实例之间共享的,换言之,一处变、处处变。...
2021-02-05 19:43:57 310 3
翻译 Eigen入门(1)
主要根据视觉SLAM十四讲配套代码编写,见这里#include <iostream>using namespace std;#include <ctime>// Eigen 核心部分#include <Eigen/Core>// 稠密矩阵的代数运算(逆,特征值等)#include <Eigen/Dense>using namespace Eigen;#define MATRIX_SIZE 100/*****************
2021-01-12 21:12:56 148
原创 Eigen入门(2)
定义单位矩阵:Matrix3d rotation_matrix = Matrix3d::Identity();cout<<rotation_matrix<<endl;1 0 00 1 00 0 1定义旋转向量AngleAxisd rotation_vector(M_PI / 4, Vector3d(0, 0, 1)); //沿Z 轴旋转45度cout.precision(3);cout << "rotation matrix =\n" <<
2021-01-12 21:01:07 347
转载 ubuntu下git加速
我们在github.com上克隆东西时有时非常慢,可以在github.com后面加上.cnpmjs.org后缀,从国内镜像源里直接下载,速度瞬间提升。比如:git clone https://github.com/uzh-rpg/flightmare.git改为:git clone https://github.com.cnpmjs.org/uzh-rpg/flightmare.git...
2020-12-03 14:26:39 940 1
原创 剑指offer33丑数
题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。这道题最初没有具体的思路,看了好几个讨论区答案,还是很迷糊。后来看了一个评论,理解了之后,感觉醍醐灌顶,记录于此,方便回顾。我们可以创建一个数组,里面的数字是排好序的丑数,每一个丑数都是前面的丑数乘以2、3或者5得到的。这种思路的关键在于怎样确保数组里面的丑数是排好序的。假设数组中已经有若干个丑数排好序后放在数组
2020-08-10 20:50:21 129
原创 剑指offer65题矩阵中的路径
和迷宫问题其实很相似,利用栈的后进先出的思想,采用回溯的方法,记录代码,方便后续回顾。bool hasPath(char* matrix, int rows, int cols, char* str){ if (matrix == NULL) return false; if (rows == 0 || cols == 0) return false; if (str == NULL) return false; vector<int> position; bool
2020-07-01 23:41:27 119
原创 python利用栈实现迷宫(非递归)
#本文通过利用栈后进先出的性质实现了迷宫路径的探索,采用了非递归的方式。整个过程主要思想如下:1、创建迷宫地图,可以用二维数组表示,01分别表示墙和路2、设置迷宫的起点和终点3、将起点push进保存路径的栈。从栈顶元素开始,搜寻其上下左右格子,如果可达,则将搜寻到的可达的格子push到当前路径中(并标记该格子已经遍历过),如果一个格子周围的四个格子均不可走,则将该格子从路径中pop()(并...
2020-05-04 09:05:11 1439
转载 new和malloc区别
以下内容转载自博客一和博客二(1)malloc和new都是在堆上开辟内存的malloc只负责开辟内存,没有初始化功能,需要用户自己初始化;new不但开辟内存,还可以进行初始化,如new int(10);表示在堆上开辟了一个4字节的int整形内存,初始值是10,再如new int[10] ();表示在堆上开辟了一个包含10个整形元素的数组,初始值都为0。(2)malloc是函数,开辟内存需要传...
2020-04-18 20:15:38 219
转载 感知机算法(二) pocket_PLA
上篇讲述了感知机算法(一)PLA算法只能解决线性可分的问题。对于数据本身不是线性可分的情况,又该如何解决呢?下面,我们就将对PLA进行优化,以解决更一般的线性不可分问题。1.pocket_PLA首先,我们来看一下线性不可分的例子:因为数据线性不可分,所以PLA算法会陷入无限循环,这时候需要对PLA进行优化。优化后的PCA的基本做法很简单,就是如果迭代更新后分类错误样本比前一次少,则更新权重...
2020-03-26 22:17:03 366
转载 感知机算法(一)PLA
转载自红色石头Will,写的很好,通俗易懂,且有具体实例,非常感谢,在此记录方便后续学习和讨论。什么是感知机「Perceptron」PLA全称是Perceptron Linear Algorithm,即线性感知机算法,属于一种最简单的感知机(Perceptron)模型。感知机模型是机器学习二分类问题中的一个非常简单的模型。它的基本结构如下图所示:以上就是线性感知机模型的基本概念,简单来...
2020-03-24 23:07:30 510
原创 cloudcompare初步认识
一、官网下载 安装二、打开软件加载文件,除了常用的三维点云文件格式,常用二维的三维的点坐标.txt也可以加载进来可视化查看及进行一些操作1、查看三维点云常用操作转换视角,有上下左右前后(俯视、仰视、左视、右视、前视、后视)六个方向,也可以鼠标左键旋转视角,利用鼠标左键旋转视角时,最好先确定旋转中心,旋转中心确定可以点击 pick rotation center,如下图中所示:点云处理...
2020-01-13 21:12:06 17059 1
转载 hanoi问题
本文代码参考这篇博客,感觉非常有用,并附一个汉诺塔小游戏的链接,可以验证通过玩游戏体会其中的道理;汉诺算法分析:有a、b、c三个柱子,需要将a上面的那个n个盘子(从下到上盘子依次变大),移动到C柱上,移动的过程借助B柱,但不能出现大盘在小盘的情况。情况如图所示:步骤一:如果只有一个盘子 直接将a柱子上的盘子移到C柱上否则 先将a柱上的n-1盘子移到B柱上,再将第n个盘子移...
2019-03-23 14:10:51 2236
原创 matlab 批量调整图像亮度
close all;filepath='D:\19_无人机照片\';file =dir(strcat(filepath,'*.jpg'));[k ~]=size(file);for j=1:k imgname=file(j).name; RGB1 = imread(strcat(filepath,imgname)); R=RGB1(:,:,1); G=RG...
2019-03-19 23:58:25 3815 1
转载 QQ截图无法截取右键菜单等内容解决方案
做教程截图步骤的时候,使用QQ截图很方便,但QQ截图对于鼠标右键显示的内容无法截取,这一点不是很方便,主要是QQ截图快捷键和系统冲突了,QQ截图快捷键默认为Ctrl+Alt+A,主要是Alt导致。我们可以通过更改qq快捷键的方式解决这一问题,参考这篇教程,具体步骤如下。打开qq设置面板,本文用的是Tim版本,如图所示,打开QQ设置,找到热键设置。我们可以看到默认的热键为Ctrl+A...
2019-01-13 20:00:20 1145
转载 win10系统让图片打开方式为照片查看器
最近忽然发现win10系统的照片查看器不见了,导致查看照片非常不方便在网上发现了一种方法,可以恢复照片查看器,本人亲测有效,且操作较为方便,在此记录,方便有需要的时候学习。按下win+r键打开运行命令窗口,然后输入regedit,打开注册表编辑器 我们双击左侧的目录,依次打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft目录,如下图所示。 ...
2019-01-13 19:29:17 6256 1
原创 opencv鼠标响应回调函数setMouseCallback()对显示图像进行操作
针对前方交会需要选择同名点,对图像进行选点的需求,编写本程序实现对图像进行选点操作。利用OpenCV函数读取显示图像,利用鼠标操作函数进行选点删除功能。本代码仅供参考。// ForwardIntersection.cpp : 定义控制台应用程序的入口点。///*控制台实现选同名点显示两张立体像对,利用鼠标左键选择同名点,右键对选错的点进行删除(鼠标要放到被删除点的附近)Autho...
2018-12-07 19:59:10 2265
原创 创建并调用DLL
本博客参考很多网上博客相关内容主要是博客一和博客二本文通过创建一个简单的DLL,说明我们通常配置的一些开源库的各个过程。DLL就是我们通常所说的动态连接库(dynamic link library),主要分为两个部分创建DLL和调用DLL,即创建一个函数封装成DLL,然后在另一个函数中调用。本文工程基于vs2015。创建DLL过程首先需要创建DLL项目;新建项目->win32项...
2018-11-25 14:53:12 215
转载 MATLAB实现冒泡排序算法
本文转载自头条文章原文章地址1、bubble_sort.mfunction y=bubble_sort(x)x_len=length(x);for i=1:x_len-1 for j=1:x_len-i if(x(j)>x(j+1)) [x(j),x(j+1)]=swap(x(j),x(j+1)); end...
2018-09-11 20:46:46 27366 3
转载 MATLAB 实现K-means算法
本文参考头条文章K-means算法MATLAB实现原文地址K-menas算法概念:K-MEANS算法是对含有n个数据的数据集,根据数据之间相似性程度分类为k类。k-means 算法接受输入量 k ;相似度的度量有不同的量来表示,常见的有欧氏距离,用户也可以自定义衡量相似度的量,比如遥感影像分类中根据每个像素rgb值来衡量相似性。实现步骤:1、随机选定k个对象作为聚类中心;2...
2018-09-08 22:14:28 3756
原创 给定一个正整数,求分解为最长的连续正整数的和
例如给定15 可以分解为1、2、3、4、5也可以分解为4、5、6,也可以分解为7、8。但1、2、3、4、5是最长的。所以输出1、2、3、4、5。又如给定9,可分解4、5,也可分解为2、3、4。输出2、3、4为最长的。代码如下:// GetContimuousNum.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<vec...
2018-09-08 15:34:03 375
原创 随机抽取两手牌(五张牌)并判断是否是顺子,是顺子的话比较大小
【调试+随机数 + 算法思想】【任取两手牌】扑克牌2,3,4,...,10,J,Q,K,A 13张牌,4个花色,以及大小王组成54。 用C语言从中抽取 5 张牌 ,要求不能重复数字,不能少,不能是大小王。2) 将上述随机产生的两手牌输出到文件output.txt中;3) 【比较大小】判断上述随机抽取的牌是否是个顺子(各牌的大小邻接关系为:2<3<4<...<10&...
2018-03-19 20:04:41 1450
原创 RANSAC拟合直线
1、原理介绍2、实现过程3、和最小二乘的比较及其优缺点1、原理介绍RANSAC是“RANdom SAmple Consensus(随机抽样一致)”的缩写。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法——它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。该算法最早由Fischler和Bolles于1981年提出。核心思想...
2018-02-02 20:43:26 4866 2
原创 解决MATLAB2016b安装完成后开始菜单和桌面没有快捷方式的问题
MATLAB2016b,装完了后出现了没有快捷方式,并在菜单栏中没有相应的文件夹,而且打开MATLAB时感觉有点不正常,先是闪现dos那种界面,然后才慢慢打开(MATLAB打开都很慢),而且之前的m文件都不能相关联。解决方案如下:方案一:找到MATLAB的安装目录文件一般是D:\Program Files\Matlab\bin(根据你自己的安装路径,不一定是D盘),然后找到MATLAB.exe,右
2018-01-19 10:35:30 59138 20
转载 获取某一路径下的所有文件
void getFiles(std::string path, std::vector<std::string>& files){/*****获取路径下的所有文件*****///文件句柄long hFile = 0;//文件信息struct _finddata_t fileinfo;std::string p;if ((hFile = _findfirst(p...
2017-12-14 20:16:18 495 1
原创 高斯投影转换(3度带)
void BL2xy(double B,double L, double H, double tt[3]){/*****高斯投影正算. 大地坐标系转换为3度带的国家统一直角坐标系,地球参数用的是WGS84定义的椭球参数*****///得到的是旋转矩阵的平移参数double L0;//中央子午线经度int n = int((L + 1.5) / 3);L0 = n * 3;
2017-12-14 20:14:31 7566
原创 协调世界时转换为GPS周秒
void UTC2GPS(int year, int month, int day, int hour, int minute, double second, int *weekNo, double *secondOfweek){ /*****协调世界时转换为GPS的周秒表示*****///输入时间应为协调世界时,即当地时间-8,返回时间为GPS周和周秒int DayofYear =
2017-12-14 20:01:13 10078 1
原创 大地坐标系转换为地心空间直角坐标系
void Blh2XYZ(double B, double L, double H, double *x, double *y, double *z)//B,L,H 大地坐标,单位是:度;X,Y,Z 地心空间直角坐标系,单位为:米{ /*****大地坐标系转换为WGS84地心空间直角坐标系*****///大地坐标系转换为WGS84坐标系B = B*PI / 180;L = L*PI / ...
2017-12-14 19:58:34 8136
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人