自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aishuirenjia的博客

记录一些日常学习过程的难点和心得,主要涉及C++、点云算法和开发

  • 博客(39)
  • 资源 (5)
  • 收藏
  • 关注

原创 兜兜的乐扣刷题算法小记(不停更)

1、对于典型套路类算法题目,比如滑动窗口类题目,解题关键:根据题意,分析数据,找到数据背后的有助于解题的规律。这些规律往往是一些数学上的递推式子。2、对于dynamic programing类题目,15分钟内,如果自己没有解出来,就直接看官方解答。但要注意的是,一边看答案一边套用labuladong关于动态规划的解题技巧来理解。这样做能加深对动态规划类题目的一般套路理解。3、遇到字符类题目,可以直接视作int[26]进行hash映射了。都可以不用Map了。这牺牲了小部分空间,但是极大地节省了时间复杂

2022-02-22 19:29:05 1038

原创 CMake编码学习笔记

为什么题目直接用编码呢?CMakeLists.txt的使用就是一个码代码的过程,尽管这个过程相对于C++码代码简单了很多。cmake由指令和变量组成。 统一按照外部编译进行,内部编译忽略。cmd命令顺序如下: 新建build目录,进入该目录; cmake -DCMAKE_INSTALL_PREFIX="指定的目标文件安装目录" + 工程最上层的CMakeLists.txt所在路径 ——————当前目录下,生成makefile...

2021-11-18 20:34:26 1067

原创 从事计算机领域的思考(不断总结,不断更新)

1.理解方法思维:模块化思维:确定模块接口,封装功能规则化思维:抽象过程为规则,计算机自动执行化繁为简:将大功能变为小功能组合,分而治之2.模块化设计——分而治之是核心思路: —通过函数或对象封装将程序划分为模块及模块间的表达 —具体包括:主程序、子程序和子程序间关系。其中,模块是子程序,主程序是模块间的关系 —分而治之:一种分而治之、分层抽象、体系化的设计思想两个概念: 紧耦合:两个部分之间交流很多,无法独立存在...

2021-09-24 17:46:57 346

原创 SVN的使用手册

本文系统介绍了SVN的常见操作。检出项目加入项目已经在服务器的仓库里,那么现在你要做的就是把它检出到本地。首先,创建一个空文件夹。在空文件夹内右键,选择SVN检出。现在你看到应该是这个界面,填入版本库地址,选择确定。如果是第一次登录,此时会弹出一个对话框,让你输入账号、密码,你正确输入即可。 记得勾选保存认证,不然每次操作都会让你输入。过几秒就会检出完成。这样本地就有了SVN上的库了。找到目录就可以开始工作了。导入项目右键选择版本浏览器...

2022-02-19 15:47:35 3648

原创 C++ priority_queue的使用

priority_queue的使用及内部实现理解大/小顶堆中元素顺序的规律

2022-01-20 17:10:03 620

原创 字典树or前缀树的实现

前缀树,又称Trie树 或 字典树,所以当然是一个树,并且是多叉树。1)树从0号节点开始;2)每一条边上都标识有一个字符,这些字符可以是任意一个字符集中的字符;3)终结点的通路与集合中的字符串是一一对应的。比如,对于都是小写字母的字符串,字符集就是'a' - 'z';对于都是数字的字符串,字符集就是'0' - '9';对于二进制字符串,字符集就是0和1。

2022-01-09 12:10:03 529 1

原创 C++中的异常处理机制:abort、exit、exception类和try..catch语句块

程序运行时有时会遇到错误,导致程序无法正常运行下去,通常程序员会试图预防这种意外。C++异常处理为这种情况提供了一种功能强大而灵活的工具。这里会介绍四种,分别是:• 调用abort()函数及assert()函数• 调用exit()函数• 异常捕获机制try…catch…• exception类一. 调用abort()函数及assert()函数abort()函数的原型位于头文件cstdlib(或stdlib.h)中,其典型实现是向标准错误流(即cerr使用的错误流)发送abnormal p

2021-05-28 17:06:17 5580 1

原创 Linux终端命令常用的一些小Tips(很实用)

总结了一些Linux终端下经常用到的实用快捷键!Home / Ctrl + a:切换到命令行开始End / Ctrl + e:切换到命令行末尾Ctrl + l:清除屏幕内容,效果等同于clearCtrl + u:剪切/清除光标之前的内容Ctrl + k: 剪切/清除 光标之后的内容!$:显示系统最近的一条参数。这个比较有用,比如我先用 cat /etc/sysconfig/network-scripts/ifconfig-eth0,然后我想用vim编辑。一般的做法是先...

2021-04-10 15:06:03 277

原创 Python学习总结

Python是通用语言、脚本语言、开源语言、跨平台语言、多模型语言。1.基本概念1)注释:不被程序执行的辅助性说明信息 ——单行注释:以#开头 ——多行注释:以'''开头和结尾 通过缩进来格式化代码,它用来表达语句之间的层次关系和包含关系,比如函数的表示,分支语句的确定。 注意,它是语法的一部分,这一点区别于C++。2)变量:程序中用于保存和表示数据的占位符号。 变量采用标识符(名字)来表示,关联标识符的过程叫命名。 命名规则:...

2021-03-21 19:59:03 2556

原创 《Effective C++》 读后总结

P5: 类的构造函数被声明为explicit,这可阻止它们被用来执行隐式类型转换(implicit type conversions),但它们仍可被用来进行显示类型转换(explicit type conversions)P8: lhs代表“left-hand side”左手端,rhs代表“right-hand side”右手端,即分别是左操作数和右操作数。 将“指向一个T型对象”的指针命名为pt,意思是“pointer to T”。比如 Widget* ...

2021-01-28 10:53:50 120

原创 写代码技巧的总结

看别人代码的思路总结应该着眼于代码的全局设计,然后再着眼于局部功能的实现。————在过程中才能保持清醒的头脑。看一个工具模块的实现,应该抓住模块的输入输出,以及模块内部是通过什么字段作为标识实现的分类。比如在杆提取算法中,最终发现还是通过Classification字段实现的分类标识。...

2021-01-28 10:53:14 752

原创 C++的VS工程从Windows迁移到Linux发生的变化

目前发现了4处不同,欢迎各位补充。1.头文件目录会发生变化,函数名也会发生细微的变动。这些变化点往往发生在调用系统函数上,比如STL的函数。2.Linux下可能没有这个函数。3.两个系统存在语法不一致。比如:1)include路径时,Linux系统下不认"",而Windows不存在这个问题。2)Linux在找库目录时要区分大小写,而Windows不区分。4.值的初始化不同。比如sort函数的默认排序,或者一些默认构造函数上。这个需要长期积累发现。...

2021-01-28 10:51:31 680

原创 Linux中ctrl + c,ctrl + d,ctrl + z的区别,以及ctrl + z挂起的命令怎么切回到原任务的命令窗口

ctrl + c和ctrl + z都是中断命令,但是他们的作用却不一样。ctrl + c 作用:强制中断程序的执行,进程会终止。ctrl + z 作用:将任务中止,即暂停的意思,但是此任务并没有结束,它仍然在进程中,只是把它放入后台,维持挂起的状态,用户可以使用 fg / bg操作继续前台或后台的任务。 fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。相关命令: (1)jobs显示当前暂停的进程; ...

2020-10-10 15:48:58 2033

原创 vs2017在Linux服务器上编译C++程序 常见问题汇总(持续更新)

容易出错的要点归纳:附加库目录或者头文件目录要注意大小写,因为Linux系统下面要区分大小写;属性页->链接器->输入->库依赖项 中库目录的写法有两种方式:对于同一个库,比如libACE.so.6.5.4,第一种写法为:“:libACE.so.6.5.4”,“:”表示库名称要写全,包括文件名和扩展名;第二种写法为:“ACE”,IDE会自动将库名称拓展为 libACE.so.6.5.4。有时候 库依赖项 里面的 库名称有严格的顺序。如果顺序颠倒,可能会编译不成功。属性页->

2020-09-17 14:53:07 507

原创 windows中常用的cmd命令

说明:cmd命令只能是英文的。命令使用帮助: 命令 -help //第一种形式的使用帮助 命令 /? //第二种形式的帮助常用基本命令:1.列出所有任务及进程号,杀进程 tasklist tasklist /? //获取使用帮助 taskkill taskkill /? //获取使用帮助2.cd切换目录 cd /? ...

2020-08-24 09:49:47 632

原创 Linux程序添加动态库.so文件目录到环境变量的三种解决办法 以及环境变量的清除

方法一:添加环境变量子招数1:添加当前用户当前终端的环境变量 ---- 临时。 子招数2:添加当前用户的环境变量 修改 ~/.bashrc文件,在其末尾添加环境变量。 使其生效,代码: 如不能生效,请重启。子招数3:添加所有用户的环境变量。 修改profile文件,在其末尾添加环境变量。 ...

2020-08-18 14:55:43 11410

原创 Python支持的数据类型

Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。数字数字类型是不可更改的对象。对变量改变数字值就是 生成/创建新的对象。Python支持多种数字类型:整形(标准整形和长整形(Python2.7及之前的有这种类型))、布尔型、双精度浮点型、十进制浮点型、复数。1)标准整形: int,标准整形,在大多数32位机器上标准整形取值范围是-2^31到2^31-1,也就是-2147483648~2147483647,如果在64位机器使用64位编......

2020-08-17 16:33:08 6896 1

原创 visual studio中解决方案的路径管理和路径宏

本篇文章系统介绍了vs中大部分常用的路径宏。vs中的路径宏 宏 说明 $(RemoteMachine) 设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参加更改用于C/C++调试配置的项目设置。 $(References) 以分号分隔的引用列表被添加到项目中 $(ConfigurationName)...

2020-08-11 09:48:57 3162

原创 C/C++ 语言程序的编译过程概述

C/C++程序编译过程详解C语言的编译/链接过程要把我们编写的一个C程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形成的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织,形成最终生成可执行代码的过程。过程图解如下: 从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链接过程。1.编译过程...

2020-08-06 15:04:45 638

原创 vs2013 编译CloudCompare(包含liblas)及添加新插件

解决思路:多看CloudCompare的源码,源码里面有真经!一、cmake构建cloudcompare工程▪ 打开cmake GUI设置源代码和输出文件路径 ▪ 设置Qt安装路径▪ 选择所需插件▪ 再次点集Configure无误后,再点击Generate即可,但是由于部分插件需要一些依赖库需自行下载,如在配置时同样需设置好相应的文件路径注意:LIBLAS中需...

2020-01-06 15:33:05 919

原创 Boost Filesystem使用手册(官网翻译)

1.概念pathname:路径名,比如:"/home/beman/boost/trunk/index.html";filename:文件名,比如:index.htmlstem:词干,比如index.html中的词干为index。extension:文件扩展名,比如:index.html为html。路径的格式:通用格式(generic format):形如/my_directory/my...

2019-12-29 22:09:31 2409

原创 PCL1.8的那些坑!各种编译及使用问题汇总

在win10上用vs2013编译及使用pcl180遇见了各种坑,这里做个汇总,既是总结,也希望能给后来人引路!1.编译到visualization模块的时候,会有如下语句报错:if (!pcl::visualization::getColormapLUT (static_cast<LookUpTableRepresentationProperties>(value), ta...

2019-12-27 11:57:47 4294 1

原创 程序员找工作总结,与程序员心得

作为2020届应届生,今年经历了一波号称“诸神黄昏”的算法岗求职高潮,万幸的是,作为一名非深度学习点云算法工程师,这波高潮对我的影响不大,手上顺利拿到了3个比较理想的offer。首先,来做个找工作的总结吧。根据目前的经验,总的来说,世界上可以分成两种程序员工程师,一种是大公司的程序员,另一种是小公司的程序员。我知道这样分类有些不妥,但并非毫无道理,下面详细介绍我的理解:为了阐述清楚后面...

2019-11-22 09:17:57 736 1

原创 union知识要点小结(精要)

PCL中存储点的数据类型用到了联合体union,于是深入研究了union类型。1. C++ Primer:一种节省空间的类——union2. 概念: union是一种特殊的类,它定义了一种新的类型。 1)一个union可以有多个数据成员,但是在任意时刻只有一个数据成员可以有值; 2)当我们给union的某个成员赋值之后,该union的其他成员就变成未定义...

2019-11-08 21:27:46 789

原创 C++ 深入解析new关键字,::new、operator new函数,placement new表达式

1. new运算符和operator new()new: 指我们在C++里通常用到的关键字。比如 A *a=new A,为了实现这一目的,应用程序需要重载new运算符和delete运算符以控制内存分配的过程。对于new来说,有new和::new之分,前者位于std命名空间中operator new(或operator new[]):是一个标准库函数,并不是运算符。对于operator ne...

2019-11-08 20:56:37 2506

原创 PCL之贪婪三角化(理解,入门)

无序点云的快速三角化: 本教程解释了如何在点云上运行一个带有法线的greedy surface triangulation algorithm贪婪曲面三角剖分算法,以获得一个基于局部邻域投影的 triangle mesh 三角形网格。背景: 算法 和 参数 该方法的工作方式是维护一个可以生长mesh网格的 list of points 点的列表(“frin...

2019-10-24 13:02:23 5314 2

原创 VS编译时一些常见错误积累LNK,比如LNK2019、LNK2001(实时更新)

1. lnk2019 LNK2019错误一般是 compile 能找到 header(.h)文件,但是在链接时找不到需要的 lib 库文件或者是 dll 文件。一般认为在编译 OSG 简单示例的时候遇到这样的错误是因为错误的设置了 lib2。OSG 的 lib 目录中一般有两组文件名相似的 lib 文件,其中一组以 d 结尾,例如:osgDBd.lib, osgViewerd....

2019-10-15 15:26:20 2810

原创 C++之策略模式实现

这里沿用《大话设计模式》第二章2.4的代码,对其略作修改。代码值得注意的是,1. 为了能实现多态,Context类中Strategy* strategy,为指针 2. 由于本题为简单程序,动态申请的内存可以手动释放。因为程序结束自然释放。//策略模式#include <iostream>using na...

2019-09-03 21:02:21 1238

转载 通俗易懂的并查集解释(附简单代码)

碰巧在学习kruskal算法来实现最小生成树,其中用到了并查集,然后详细研究了并查集。找到一篇好的链接。原文链接参考:https://blog.csdn.net/qq_41593380/article/details/81146850具体并查集解释参考链接。代码如下:#include<iostream>#include<cstdio>#include&lt...

2019-08-29 22:09:45 375

原创 k-选取问题之快速选取策略quickSelection

1. 问题描述: k-选取问题:从一组无序数组中,找出第k大的元素。2. 思路分析: 通常想到的是先排序,然后直接取出秩为k的元素,即为所求解。但是根据比较式算法的结论:该算法最坏情况下需要O(nlogn)时间复杂度。对于一个容量较大的数组来说,复杂度太高。 这里介绍一种基于减而治之、逐渐逼近的策略,即利用二分思想来解决这个问题。它可以在最好或...

2019-08-28 17:15:29 848

原创 归并排序+逆序对

第二次接触MergeSort与Inversions(逆序对),这次弄懂了每一个细节,很好的理解了两者之间关系。下面总结一下相关技巧。1.MergeSort和quickSort类似,主要采用了Divide-and-Conquer的思想,也就是将原本规模为1的问题,二分为规模相近的两个独立子问题,同时求解。因此这里递归通常是常用技巧。这里难点应该在边界条件的判断上。(当然这也是算法通有难点)。...

2019-08-25 19:43:15 298

转载 智能指针之共享指针shared_ptr 的理解、使用(全)

好长一段时间没明白共享指针的理解和使用,今天认认真真查了一些资料,搞懂了很多。在这里整理了一下两个链接的内容。主要参考链接: https://blog.csdn.net/u011866460/article/details/42027457 https://blog.csdn.net/shaosunrise/article/details/8522882...

2019-06-14 18:43:45 17068

原创 c++ 写入字符串到文件

直接贴代码:#include <iostream>#include <sstream>#include <fstream>#include <vector>#include <string>using namespace std;int main(){ vector<string> files;...

2019-06-12 19:10:36 12447

原创 函数指针的理解与使用

马上研三,面临着找工作,心血来潮,在学堂在线网站上复习C++语法课,希望把以前没搞懂的一些知识点弄懂了。以后可能会陆续更新一些难啃点的使用理解。函数指针: 定义:函数指针指向存放代码段的首地址; 定义形式:存储类型 返回值类型 (*函数指针名) (); 值得注意的与指针类型的函数的区别: 指针类型的函数:函数返回值是指针。定义形...

2019-06-09 12:44:21 740

原创 解决CREATEFILE函数中不能从const char* 转换到LPCTSTR的问题

问题的原因:因为在vc6里面默认使用字符ANSII方式编码,而在vs2010及以上默认使用UNICODE方式编码,它们对一些字符所占内存空间的位数不同,所以就导致了这个问题。背景介绍:一、首先我们要明白这几个关键字的含义:LPSTR: 32bit指针 指向一个字符串,每个字符占1字节。 相当于 char *LPCSTR: 32-bit指针 指向一个常字符串,每个字符占1字节。...

2019-04-03 15:17:26 1408

原创 深入理解计算机系统之计算机系统漫游

        我带着一个要成为编程大牛的理想,下定决心开始看《深入理解计算机系统》这本书了。由于正在读研究生,没有全力去看这本书,更新速度比较慢。但是,这是一个起点,我相信也不是一个终点。       应该带着目标去学习。我们就以解决问题为导向开始着手这件事。文章记录一些我比较关心的知识点。越来越发现,书中的图才是精华。能解决的问题:      1.奇怪的数字错误;      2...

2018-10-28 22:07:11 222 1

原创 PCL1.8.0 QT5.5 vtk7.0 VS2013 win10 x64配置

废话不多说,直接上干货。各库具体信息: PCL1.8.0-allinone-MSVC2013-x64 + 属性表。(https://pan.baidu.com/s/1c1sqoQO#list/path=%2F) Qt5.5-opensource。官网下载。注意下载列表一定要包含MSVC2013-x64 VS2013 update3及以上。不然据说有问题 ...

2018-09-25 18:42:06 1196

原创 PCL中的区域生长分割(region growing segmentation)

在本博文中,我主要介绍如何在pcl::RegionGrowing类中调用区域增长算法。首先注意一点,这里是region growing segmentation,不是color-based region growing segmentation.算法核心:该算法是基于点法线之间角度的比较,企图将满足平滑约束的相邻点合并在一起,以一簇点集的形式输出。每簇点集被认为是属于相同平面。工作原理:首先需要明...

2018-05-08 15:50:59 11143 7

原创 win10+CGAL4.11.1的编译与配置

开始用C++做点云数据处理以来,自己以小白的底子陆续编译了两个大型库PCL 和CGAL,心里面有了一些东西,想来分享。PCL用过的人都明白,有allinone给配置环境节约了不少时间,但是CGAL就没有这么方便了,每个第三方库都需要自己来配。然后库与库之间还涉及与visual studio版本相互支持的问题。可以说一不注意就要重新配置环境。CGAL4.11.1的编译与配置主要还是按照官网的...

2018-03-15 23:00:15 2338

osg视频链接.rar

从网上找的资料“osg学习视频”,视频资源来源亲测可用。带有源码

2019-10-15

OpenGL库包.rar

该压缩包提供了OpenGL库文件包,包含opengl32.lib glu32.lib glaux.lib glew32.lib

2019-07-23

WangRui_osgCookbook.rar

王锐出版osg学习文档,真实可靠,有与文章对应的代码,值得学习。

2019-07-10

lastools库资源下载

作为提供高效点云处理算法的库,支持las格式转换、点云处理常见算法等功能。官网上下载速度面,页面经常进不去。

2019-03-11

glew和glut的x64位的动态链接库,亲测可用。网上难找

这是一份glew_x64和glut_x64的动态链接库。网上容易找到32位版本,64位难找。需要者可自行下载。

2019-03-11

空空如也

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

TA关注的人

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