- 博客(73)
- 资源 (1)
- 收藏
- 关注
原创 ubuntu18.04通过wine 安装微信
参考:https://blog.csdn.net/weixin_39583302/article/details/105617534成功!
2021-12-20 13:03:37
331
原创 ORBSLAM2_稠密地图+回环
ORB-SLAM2_RGBD_DENSE_MAP-master稠密地图+回环检测运行时遇到的问题:运行一两帧出现Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 32>::plain_array .......Eigen 对齐的问题。在有定义Eigen的头文件中添加了预编译命令public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW 添加之后问题还在,后来把CmakeLists.
2021-11-26 15:41:19
2571
3
原创 多版本opencv管理 --pkg-config
多版本opencv管理 --pkg-configy@y-workstation:~$ pkg-config --cflags opencv4 -I/usr/local/opencv4.4.0/include/opencv4y@y-workstation:~$ pkg-config --cflags opencv-I/usr/local/opencv2.4.11/include/opencv -I/usr/local/opencv2.4.11/includey@y-workstation:~$ pk
2021-11-07 18:10:29
2194
原创 线程池设计
IO模式:阻塞非阻塞忙轮询响应式-- 多路IO转接多路IO转接:select、poll、epoll//错了?//多进程/多线程比多路IO转接慢在哪?// 多进程或多线程的话,内核需要在多个进程或线程之间切换,消耗比较大//======================================================================================在一个应用程序中,会多次使用线程,因此免不了就需要多次线程的创建及销毁。但是多次线程创建和销毁会
2021-10-26 19:21:07
263
原创 Linux内核中的 __init、__initdata、__exit、__exitdata
具体可以查看 kernel 源代码中的文件: include/init.h#define __init __attribute__ ((__section__ (".init.text"))) __cold#define __initdata __attribute__ (( __section__ (".init.data")))#define __exitdata __attribute__ (( __section__ (".exit.data")))这是Linux...
2021-07-05 15:49:59
971
原创 Linux下的task_struct结构体
转自:浅析Linux下的task_struct结构体_lc_29503203的博客-CSDN博客_task_struct本文的重点是剖析task_struct,在这之前我们需要先了解一下进程的概念和Linux下进程控制块PCB。1. 首先什么是进程?1.1 进程可以这样描述:1>进程是程序的一个执行实例;2>进程是正在执行的程序;3>进程是能分配处理器并由处理器执行的实体。按内核观点来谈进程:它担当分配系统资源(CPU时间,内存)的实体。1.2 进程的两个基本
2021-07-05 14:20:48
1498
原创 leetcode 01两数之和
leetcode 01 两数之和题目题解方法思想题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:
2021-06-17 15:48:22
118
原创 STL::sort()源码 记录
快速排序每次将待排序数组分为两个部分,在理想状况下,每一次都将待排序数组划分成等长两个部分,则需要logn次划分。而在最坏情况下,即数组已经有序或大致有序的情况下,每次划分只能减少一个元素,快速排序将不幸退化为冒泡排序,所以快速排序时间复杂度下界为O(nlogn),最坏情况为O(n^2)。在实际应用中,快速排序的平均时间复杂度为O(nlogn)。快速排序的效率取决于递归的深度。当数组基本有序时,会向基准的一个方向进行高深度递归而基本无序时,递归的深度远远小于高深度递归的深度,效率最高。..
2021-04-24 15:14:27
107
原创 排序算法
目录冒泡排序代码实现优化选择排序代码实现优化直接插入排序基本思想代码实现优化二分插入排序希尔排序基本思想代码实现堆排序基本思想图解代码实现归并排序基本思想特点图解代码实现复杂度分析快速排序基本思想代码实现复杂度分析快速排序和归并排序的区别稳定性分析排序算法的选择以升序举例冒泡排序排序的入门方法思想:进行n-1轮比较,每一轮都两两比较相邻关键字,如果不满足升...
2021-04-08 22:45:31
498
原创 动态规划
动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。动态规划中每一个状态一定是由上一个状态推导出来的,贪心没有状态推导,而是从局部直接选最优的。看某个题能不能用动态规划来解决,主要就是看这个大问题能不能划分成很多相同类型的子问题,并且这些子问题之间是有重叠的,意思就是某个子问题的最优实现可以基于另一个子问题来简化实现。重叠子问题、最优子结构、状态转移方程动态规划问题五步曲:确定dp数组(dp table)以及..
2021-04-07 10:20:25
102
原创 布隆过滤-- 概率型数据结构(probabilistic data structure),特点是高效地插入和查询
https://crossoverjie.top/2018/11/26/guava/guava-bloom-filter/https://www.huaweicloud.com/articles/4c6b38d5e80d6b93b6cee0f3dadefb23.html
2021-03-17 16:21:47
210
原创 Cookie
参考:https://zhuanlan.zhihu.com/p/22396872[Cookie与Session的区别(面试的是时候别傻傻的说只有存储位置不同)](https://zhuanlan.zhihu.com/p/95024411)https://zh.wikipedia.org/wiki/CookieCookie 是什么1. Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据。2. 浏览器需要保存这段数据,不得轻易删除。3. 此后每次浏览器访问该服..
2021-03-17 13:42:50
121
原创 函数重载遇上默认参数、占位参数
函数重载遇上默认参数会有二异性,不要使用!!int test01(int*a,int b=10){ cout<<"test——1"<<endl; return 0;}int test01(int*a){ cout<<"test——2"<<endl; return 0;}int main(){ int a = 12; int b = 20; test01(&a,b);
2021-03-16 13:59:15
159
原创 reference to non-static member function must be called vector用qsort
leetcode上: 数组中出现次数超过一半的数字在做这个题时,就想着投机取巧,试着先将数组的元素进行排序,从大到小或从小到大都可以,因为不管哪种情况超过一半的数字都会出现在排序后的序列的中间位置。class Solution {public: int majorityElement(vector<int>& nums) { if(nums.size()==0) return -1; qsort(nums,nums.si
2021-03-11 20:37:32
452
原创 二维数组做函数参数
二维数组做函数参数时:int arr[i][j]; // 正确int arr[][j]; //正确int arr[i][]; //错误int arr[][]; //错误可以同时指定第一维和第二维的长度;可以只指定第二维的长度;不可以只指定第一维的长度;不可以第一维和第二维的长度都不指定。综上所述,至少指定第二维的长度。因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行
2021-01-31 19:21:51
794
原创 Linux WIFI模块灰色,找不到可用wifi
重启网络管理工具即可$ sudo service network-manager restart
2021-01-15 10:34:57
827
原创 vector容器的使用 注意事项
如果vector是空的,并且没有分配空间,切忌用下标进行访问,会出错!!!int main(){ vector<int>v; v[0]=1; return 0;}成功编译,但是运行的时候报错Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)。因此,当vector为空的时候,一定要用push_back()添加值。但是,如果在定义动态数组v之后,经过了resize 或reserve之后,就可
2021-01-07 15:25:01
546
原创 剑指 Offer 06. 从尾到头打印链表
文章目录解法1. Vector2. Stack 栈 先进后出3.递归剑指 Offer 06. 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解法1. Vector前到后遍历链表,将val值存放在vector里面,由于要反过来打印,因此可以利用vector的reverse函数进行反转,然后在输出即可执行用时:8 ms, 在所有 C++
2021-01-07 15:15:37
73
原创 剑指 Offer 05. 替换空格 (合并字符串或数组)
目录题目:把字符串 s 中的每个空格替换成"%20"。解法1. 暴力(从前到后,遇到空格就替换) --- 时间复杂度为O(n2)O(n^2)O(n2)2. 原地修改 --- 时间复杂度为O(n)O(n)O(n)3. 创建新的字符串 --- 时间复杂度为O(n)O(n)O(n) 、 空间复杂度为O(n)O(n)O(n)举一反三题目:把字符串 s 中的每个空格替换成"%20"。请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:
2021-01-07 11:48:00
108
原创 剑指 Offer 03. 数组中重复的数字
目录题目: 找出数组中重复的数字。解法1. 排序2. 集合3. 哈希表4. 数组 -> 不修改数组找出重复的数字5. 原地排序 !!! (降低空间复杂度)题目: 找出数组中重复的数字。找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。解法1. 排序先对数组进行排序,然后遍历排序后的数组,第i位置的数与i+1比较,相等就表示找到了
2021-01-06 17:45:35
90
原创 C++智能指针
shared_ptr 可以通过make_shared的标准库返回一个shared_ptr类型的指针来进行初始化,但是unique_ptr没有这样的操作,当定义一个unique_share类型的指针时,需要将其绑定到一个new返回的指针上。类似于shared_ptr,初始化unique_ptr必须采用直接初始化的形式:unique_ptr<int> p1; //正确,指向一个int类型的unique_ptrunique_ptr<int> p2(new int(5)); //正确指
2021-01-06 11:11:59
62
原创 黑马C++视频 预约管理系统笔记
vector定义为类的静态成员变量当vector、set之类的数据类型在.h文件中定义为类的静态成员变量时,它的初始化要放在对应的.cpp文件中switch case变量定义错误例子switch(something){ case a: int a = 0; //定义了一个变量a,他在整个switch语句可见,万一后边用到a的时候,但是这个标签又被跳过就会出现问题 break; default: break; }结果报错:error: cannot jum
2021-01-05 14:55:09
170
原创 数据结构 —— 图 之用邻接矩阵存储图
文章目录代码输出代码#include <iostream>#include <iomanip>using namespace std;#define MAXVEX 100 //定义最大定点数typedef int WeightType ; //定义权重类型typedef int DataType ; //定义顶点数据类型typedef struct GNode *PtrToGNode ;struct GNode{ int Ne; int
2020-11-28 15:37:35
314
原创 Ubuntu18.04 ROS Kinect2
安装libfreenect2github上的readme写的很详细了,一步步参考着来下载git clone https://github.com/OpenKinect/libfreenect2.git安装依赖这一步参考官方说明即可。https://github.com/OpenKinect/libfreenect2稍稍记录一下,我当时是按着别人的博客装的,也都差不多,但是要注意18.04版本要sudo apt-get install libturbojpeg0-dev,否则会报错找不
2020-11-11 13:29:16
989
原创 error while loading shared libraries: libcudart.so.10.0: cannot open shared object file
问题error while loading shared libraries: libcudart.so.10.0: cannot open shared object file解决 sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 && sudo ldconfig sudo cp /usr/local/cuda-10.0/lib64/libcubla
2020-10-22 15:07:41
2070
原创 使用opencv4.4 出现error: conversion from ‘cv::Mat’ to non-scalar type ‘IplImage {aka _IplImage}’
问题 error: conversion from ‘cv::Mat’ to non-scalar type ‘IplImage {aka _IplImage}’ requested IplImage ipl = m; ^CMakeFiles/slic.dir/build.make:81: recipe f
2020-10-22 14:40:10
5388
6
原创 vscode使用
高亮TODO和Dxygen注释TODO在扩展商店里下载 “TODO Highlight”和 “TODO Tree”两个插件修改settings,json文件{ #从这开始 "doxdocgen.generic.paramTemplate": "@param[in] {param} ", "todo-tree.highlights.defaultHighlight": { "icon": "alert", "type": "text", "foreground": "red",
2020-10-16 09:30:35
241
原创 Clion 配置ros
https://blog.csdn.net/qq91752728/article/details/79577998使编译过程中生成的文件位于build和devel文件夹下:https://www.jb51.net/article/193537.htm编译过程中生成的文件不是位于build和devel文件夹下:https://www.jianshu.com/p/db8f9f629adc...
2020-10-13 17:20:20
310
原创 ROS学习记录(二)-- 节点
ROS 节点相关ROS运行单位:ros程序的运行单位是ros节点 node节点初始化ros节点初始化通过调用ros::init() 接口实现,例如:ros::init(argc, argv, “TUM”);其中,TUM为ros节点的名字。但是这个名字是可以修改的,比如在launch文件中修改节点的启动通过目前看到的博客,了解到有两种启动方法:通过调用ros::NodeHandle创建NodeHandle实例nh来实现...
2020-10-11 20:09:10
309
原创 DS-SLAM编译
第一步:下载源码放在自己建立的工作空间catkin_ws下的src中第二步:下载并编译caffe-segnet-cudnn7-master注意这一步,原文推荐的是下载caffe-segnet-cudnn5-master,但是由于之前编译caffe用的是cudnn7.6.0,所以这里选择下载caffe-segnet-cudnn7-master下载好了之后放在/home/y/SLAM/ROS/catkin_ws/src/DS-SLAM-master/Examples/ROS/ORB_SLAM2_Poin
2020-10-11 10:51:31
3078
19
原创 caffe编译过程
文章目录我的安装环境:第一步:下载源码编译1. 将`Makefile.config.example `文件复制一份并更名为 `Makefile.config`:2. 文件修改2.1 修改Makefile.config文件2.2 修改Makefile文件3. 编译问题1:[Makefile:3:***遗漏分隔符。停止 。]()问题2:[Makefile 命令在第一个目标之前开始. 停止.]()问题3:[./include/caffe/util/db_lmdb.hpp:8:10: fatal error: lm
2020-10-10 19:10:07
1489
2
原创 ROS学习记录(一)
ROS项目开发流程创建工作空间工作空间是指存放工程开发相关文件的文件夹,包括:src: 代码空间build:编译空间devel:开发空间install:安装空间(不常用)$ mkdir -p ./catkin_ws/src //创建文件夹 -p表示递归创建$ cd ~/catkin_ws/src //进入该目录$ catkin_init_workspace //初始化工作空间------------------------------------------
2020-10-09 20:11:16
105
原创 ORB-SLAM2编译./build_ros.sh 问题
报错:[ 66%] Linking CXX executable ../Mono[ 77%] Linking CXX executable ../MonoAR[ 77%] Built target Mono[ 77%] Built target MonoAR[ 88%] Linking CXX executable ../RGBD[100%] Linking CXX executable ../Stereo/usr/bin/ld: CMakeFiles/RGBD.dir/src/ros_rgb
2020-10-09 09:35:40
1578
原创 Ubuntu18.04下编译安装ORBSLAM2_with_pointcloud_map总结
文章目录下载第一步,编译g2o编译ORB_SLAM2_modified终于到运行啦参考链接完结撒花下载首先从GitHub上下载,然后解压:有点没看懂这个单独的第一个文件夹要怎么用,就按其他博客上的来吧先把上图中的压缩文件解压:然后就在这里边操作就好。第一步,编译g2o1. 进入g2o_with_orbslam2,对cmakelists.txt下的代码进行注释2. 同时对g2o文件夹下的cmakelists.txt下的代码进行注释3. 回到g2o_with_orbslam2主文件夹,进
2020-08-26 21:26:50
1818
13
原创 CMakeLists.txt 输出找到的opencv版本
CMakeLists.txt输出找到的opencv版本SET(Opencv_DIR "/usr/local/opencv2.4.11")find_package(OpenCV REQUIRED)MESSAGE(STATUS "OpenCV version: "${OpenCV_VERSION})MESSAGE(${PROJECT_SOURCE_DIR})MESSAGE(${PROJECT_BINARY_DIR})输出信息:-- OpenCV version: 3.2.0/home/y
2020-08-04 17:44:22
1897
原创 ubuntu18.04安装SLAM十四讲所有库
目录第三讲:三维空间刚体运动------Eige第四讲:李群与李代数-----Sophus、Pangolin第五讲:相机与图像-----OpenCV其他参考参考一<十四讲>:第6讲 非线性优化---Ceres、G2o第8讲 视觉里程计 2-----OpenCV4第11讲 回环检测 ------ DBow3第12讲 建图---PCL第三讲:三维空间刚体运动------Eigesudo apt-get install libeigen3-dev第四讲:李群与李代数-----Sophus、Pa
2020-07-11 11:38:28
1721
原创 Ubuntu18.04 安装向日葵
Ubuntu18.04 安装向日葵1. 下载安装包 Linux ---> 图形版本 --->Ubuntu/..(具体忘了) 然后应该就是下载到"下载"文件夹里了2. 安装 其他博客说是有两种:一种是直接双击安装包(但是我这一步没反应),然后就按第二种来: (1)首先使用命令进入到安装包存放目录,找到安装包,鼠标右击"Open Terminal",输入以下命令: sudo dpkg -i SunloginClient-10.0.2.24779_amd64.deb(2)文件
2020-07-08 10:26:48
6869
5
原创 线特征--LSD算法
参考:线特征—LSD and LBD程序运行(一)线特征—LSD算法(二)直线段检测算法(LSD:a Line Segment Detector)论文回顾之一 一种新的直线段检测算法—LSD:a Line Segment Detector以下待看: SLAM线特征学习(1)——基本的线特征表示与优化推导 SLAM中线特征的参数化和求导 SLAM中直线特征如何优化...
2020-07-07 15:56:56
1149
原创 特征检测---ORB
文章目录为什么要引入ORB什么是ORBFASTOriented FASTBRIEF描述子Hamming距离改进的BRIEF为什么要引入ORB在ORB之前,有SIFT、SURF,虽然具有良好的旋转不变性、光照不变性等,但这两个检测方法需要的时间实在是有些长,尤其是SIFT。下图是ORB文献里提到的每种方法检测一帧图像(640*480)所用的时间:可以看出来,ORB在速度上的确是快很多。什么是ORBORB全称是Oriented FAST and Rotated BRIEF,是目前最快速稳定的特征点检
2020-06-27 16:41:46
3472
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人