自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 资源 (5)
  • 收藏
  • 关注

原创 vscode 通过Remote-ssh远程连接服务器报错 could not establish connection to ubuntu

1.确保 C:\Users\xxx.ssh\config中配置正确,比如linux终端命令行中的打印 xxx@ubuntu ,host是就是ubuntu,user就是 xxx,ip要保证和192.168.146.121能够ping通。右键点击 config 文件 → ‌属性‌ → ‌安全‌ → ‌高级‌ → 移除 Everyone 或其他无关用户的权限。打开 ‌文件资源管理器‌ → 进入路径 C:\Users\xxx.ssh。1‌.删除无关用户权限‌:(xxx是你windows系统用户名称)

2025-03-26 21:36:33 654

原创 C++中的std::string_view和std::span

span 是 C++20 中新增的一个轻量级容器,用于表示一段连续的内存区域,它不负责管理内存空间,也不会拥有所指向内存的所有权,只是提供一种方便的方式来操作内存区域,因此可以看做是一个只读的“裸指针”。跟string的只读函数基本一致,string_view的substr函数的时间复杂度是O(1),swap函数仅会修改string_view的数据指向,不会修改指向的数据。比如\0对于字符串而言,有其特殊的意义,即表示字符串的结束,字符串视图,它关心实际的字符个数,所以可以自定义字面量。

2023-05-10 21:47:22 1273

原创 【无标题】

感觉一直对git的了解不够深入,每次都是用到什么功能现去找,但这样每次查询都耗费时间并且可能出错,索性将git系统性地学习一遍,下面是记录的学习笔记。每个项目的.git目录用来保存元数据和对象数据库,每次克隆镜像仓库实际拷贝的就是这个目录中的数据。~/.gitconfig 文件:用户目录下配置文件只用于该用户,git config --global读取该文件。/etc/gitconfig 文件:对所有用户普遍使用的配置,git config –system 读取该文件。暂存区是个存在.git目录中的文件。

2023-05-09 23:00:12 719

原创 select、poll、epoll简介

3.epoll的解决方案不像select或poll一样每次都把current轮流加入fd对应的设备等待队列中,而只在epoll_ctl时把current挂一遍(这一遍必不可少)并为每个fd指定一个回调函数,当设备就绪,唤醒等待队列上的等待者时,就会调用这个回调函数,而这个回调函数会把就绪的fd加入一个就绪链表)。当活动连接比较多的时候,epoll_wait的效率未必比select和poll高,因为此时回调函数被触发的过于频繁,因此epoll_wait适用于连接数量多,但活动连接较少的情况。

2023-05-05 22:26:35 1516

原创 智能指针使用方法速查

w.lock()//如果expired()为true,返回空shared_ptr,否则返回指向w对象的shared_ptr。share_ptr伴随类,弱引用指向share_ptr管理的对象,不改变share_ptr引用计数。p.reset() 若p是唯一指向对象的shared_ptr,reset会释放该对象,p被置空。int j = *x;p.get() 返回p中保存的指针,如果对象被智能指针释放,返回指针指向对象为空。p.get() 返回p中保存的指针,如果对象被智能指针释放,返回指针指向对象为空。

2023-05-04 22:21:54 841

原创 git常用基础总结

现在有一个项目git仓库,从该仓库做了工作拷贝,接下来对这些文件做些修改,并完成目标后,提交到仓库。工作目录每个文件状态都分为已跟踪和未跟踪。(2)本地初始化为仓库。

2023-04-19 22:31:21 116

原创 gdb多线程调试

采用gdb调试代码时,经常遇到多线程的情况,但对gdb在多线程中的切换并不熟悉,导致排查问题很困难,所以整理下多线程调试方法。如果只想n或者s单步调试锁定线程时:set scheduler-locking step。锁定当前线程,暂停其它线程:set scheduler-locking on,调试代码时先将代码跑起来,然后ctrl+c将代码中断。查看线程信息:i threads [id …注意:打了断点后,执行到断点会暂停所有线程。不指定id就查看所以的线程信息。切换线程:thread id。

2023-04-13 23:33:59 2657

原创 C++中的右值、移动和完美转发

3.完美转发指可以写一个接受任意实参的函数模板,并转发到其它函数,目标函数会收到与转发函数完全相同的实参,转发函数实参是左值那目标函数实参也是左值,转发函数实参是右值那目标函数实参也是右值。移动语义,在看来可以理解为转移所有权,之前的拷贝是对于别人的资源,自己重新分配一块内存存储复制过来的资源,而对于移动语义,类似于转让或者资源窃取的意思,对于那块资源,转为自己所拥有,别人不再拥有也不会再使用。1.左值表达式是表示的是对象的身份,右值表达式表示的是身份的值。

2023-04-07 08:32:22 202

原创 git detached HEAD 问题处理

通常情况下,HEAD指向一个分支;同时,每一个分支对应一个特定的commit(确切的说,一个分支上可以有多个commit,但是只有一个顶层commit(这里叫做B),而且commit之间是简单的线性关系)如果检出到一个不在分支顶端的commit点 A, head就会指向A这个commit点,并且不会指向特定分支,如果此时提交一个commit,只能被B索引到,且不属于其他分支。此时不应该从当前分支离开(如果已经离开通过。查看之前的名称),应该创建一个新分支。此时不再处于detached状态。

2023-04-03 22:59:17 1391

原创 gdb小技巧之图形化调试界面

在gdb调试的时候通常都是用命令行操作,有时候不太直观,用gdb图形化界面可以一遍看代码执行位置,一边输入指令调试,如果想更方便的在可视化界面代码中调试还可以用cgdb工具进行调试。win_name可以是src、cmd、asm和regs。然后运行代码: r,然后就会运行到断点处15行并显示高亮,是不是很直观。指令:winheight <win_name> [+ | -]count。可以看到图中代码15行左边B+>的地方就是显示的断点。然后就是正常的调试,比如打印变量c的值:p c。

2023-03-30 22:22:25 2719 1

原创 C/C++回调函数

【常规情况】std::bind(&BrainToolBox::Add, brain, std::placeholders::_1, std::placeholders::_2);— 类成员函数 — */【伪代码】std::bind(&className::funcName, classPtr, std::placeholders::_1, …【常规情况】std::bind(&Add, std::placeholders::_1, std::placeholders::_2);1)声明一个函数指针类型。

2023-03-29 22:39:06 841

原创 自动驾驶通信中间件-冰羚iceoryx

由于数据消息的有效负载未被序列化,所以数据的“发布者”和“订阅者”必须具有相同的内存布局(memory layout),对于特定处理器上的IPC,通过添加避免复制的应用程序接口(API),实现了真正的零拷贝 - 即实现了数据从“发布者”到“订阅者”的端到端传输方法,由此而产生的后果是系统将在中间件堆栈内部产生多个数据副本,对数据的有效负载序列化,这将在无形中极大的消耗系统的资源。无锁队列能够使“订阅者”更高效的使用内存,并最大限度的在队列里储存最新的消息数据,无论连续轮询之间的时间间隔有多长。

2023-03-28 22:34:19 1667

原创 socket广播代码实现

iana(internet assigned number authority)规定,组播mac地址的高24bit为0x01005e,mac 地址的低23bit为组播ip地址的低23bit。以太网传输单播ip报文的时候,目的mac地址使用的是接收者的mac地址。但是在传输组播报文时,传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使用的是组播mac地址。224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用;

2023-03-27 22:55:12 1023

原创 linux信号理解

sigaction可以使用sigaction结构体的sa_handler函数对信号进行处理(此处等同于signal函数),也可以使用sa_sigaction函数查看信号的各种详细信息。它是一个对象的整数类型,该对象可以作为一个原子实体访问,即使存在异步信号时,该对象可以作为一个原子实体访。第一个参数指定信号的值,第二个参数指定针对前面信号值的处理,可以忽略该信号(参数设为SIG_IGN);参数3:接收到信号之后,保存原来对此信号处理的各种方式与信号(可用来做备份)。信号产生原因:软中断或者硬中断。

2023-03-23 22:41:13 777

原创 std::enable_shared_from_this作用:判断异步回调宿主生命周期

让回调lambda捕获宿主对象的弱引用指针(weak_from_this()),在回调回来以后,检测weak_ptr是否可用,可用则获取shared_ptr保证宿主生命周期,然后执行其他方法。(2)如果回调没有回来,延长宿主对象的生命周期,继承std::enable_shared_from_this可以做到这一点,那就是让lambda捕获宿主对象的shared_ptr指针(share_from_this()),这样在回调回来之前宿主对象不会销毁。api::get(url,>{ //解析response})

2023-03-22 22:59:28 607

原创 C++中的future和promise使用方法

std::promise 对象可以保存某一类型 T 的值,该值可被 future 对象读取(可能在另外一个线程中),因此 promise 也提供了一种线程同步的手段。在 promise 对象构造时可以和一个共享状态(通常是std::future)相关联,并可以在相关联的共享状态(std::future)上保存一个类型为 T 的值。异步操作不能马上就获取操作结果,只能在未来某个时候获取,但可以以同步等待的方式来获取结果,可以通过查询future的状态(future_status)来获取异步操作的结果。

2023-03-21 23:22:59 1336 1

原创 C++中的iostream、fstream、sstream(附测试代码)

下面介绍C++中的iostream、fstream、sstream的使用方法,内容出自C++primer第八章内容。一、 IO类1.三种IO类型加w的类型为对宽字符wchar_t的操作,如wistream、wostream中的wcin、wcot、werror。ifstream和isteingstream都继承自istream,可使用cin的功能(如>>和getline等)。o...

2020-05-01 17:29:35 1714

原创 vs2013旧账号登录后新账号无法重新登录

问题如下:We were unable to establish the connection because it is configuredfor user olduser@old.com but you attempted to connect using usernewuser@new.com. To connect as a different user perform a sw...

2020-02-18 21:23:18 1146

原创 visio画两条直线交叉但不弯曲不跨线

设置方案:Visio菜单栏 设计-》连接线-》显示跨线设置前:设置后:

2020-02-18 10:09:39 13004 2

原创 STM32芯片Jlink下载不了程序的问题Error:Flash Download failed "cortex-M4"

问题1:Stm32板子下载程序时遇到问题,下载器能检测到,但识别不了stm32芯片?解决:板子上clk和dio的位置和原理图的不一致,交换了两根线的位置即可。问题2:检测到了芯片,但下载程序时出现如下问题:Error:Flash Download failed “cortex-M4”**JLink Warning: Could not set S_RESET_STJLink Warnin...

2019-12-05 20:20:16 5394 3

原创 数据结构与算法-C语言描述-三数取中快速排序(递归+非递归)+快速选择

最近读了《数据结构与算法-C语言描述》,受益匪浅,里面的排序算法讲的浅显易懂,而且给出的快速排序算法代码也非常简洁,下面给出中快排的递归和非递归方式(参考了别人代码实现的),同时将快排的变种快速选择算法的代码也附上,方便记忆。代码我已经调试通过可以直接使用或者用来记忆用来面试。#include<iostream>#include<stack>using names...

2019-12-05 20:09:22 1208

原创 《2019秋招腾讯、招银面试问题》

朋友秋招面试问的问题,记录一下招银网络电话面试一面自我介绍实习经历测试方法软件开发流程链表设计,优点设计模式,单例的场景友元多态数据库事务,应用的场景多表怎么查询招银网络对数据库这块比较重视,问的问题可能会比较多腾讯电话面一面-互娱腾讯:30min1.项目中搭建流媒体服务器的过程,rtsp的底层的什么协议,为什么选这个协议,哪个字节到哪个字节是什么?视频流的时延,码...

2019-09-12 11:15:52 10003

原创 QT界面运行时间一久就崩溃

最近写程序时出现了一个奇怪现象,一个界面程序显示数据,下面有TextEdit打印数据信息,时间运行一久就出现界面卡死崩溃,而且因为处理的东西不复杂只开了单线程,无内存泄漏等问题。最终发现是–程序运行久了TextEdit里面的打印内容过多,而我一直没清空,最终导致程序崩溃。所以在控件中打印信息而且是累加的信息,一定要记得清空。...

2019-05-24 18:48:57 3228

原创 C++中static成员使用时应注意几点

static成员特点:1.可以通过类名调用static成员如Point::output();2.静态成员函数中不能引用非静态成员,但非静态函数可调用静态函数。3.类的静态成员变量必须先初始化再使用。...

2019-05-19 10:15:19 340

原创 点云程序报错error C2988: unrecognizable template declaration/definition

今天在写点云程序时加入了下面三个头文件就报了一个奇怪的错误:#include <pcl/io/io.h>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>报错:Error 6 error C2988: unrecognizable template declaration/definition ...

2019-05-10 12:13:38 1589 1

原创 总结近一段时间的腾讯、阿里、华为实习面试感悟(已收到华为、阿里实习offer)

总结一下三月到四月份面试的感悟:虽然到目前为止,一个实习offer都没拿到,虽然有些遗憾,但我的第一阶段目的已经达到到了,知道了各个公司大概的要求和面试流程。非常欣慰的是前几天阿里给了我三面的机会,虽然最终凉了,但还是看到自己身上也有闪光点和不足,我也知道了自己想要去什么样的公司,和对自己以后的工作的初步定位。这些大大小小的面试都暴露出了我一些问题和不足:1.非计算机专业,所以计算机专业的...

2019-05-02 11:03:33 2122 5

原创 自己编写的字符串分割函数mysplit()

利用strtok()函数封装成的字符串分割函数mysplit()sourceStr为源字符串splitSymbol为分隔符号strArray为分割后的字符串,以vector形式返回#include<iostream>#include<string>#include<stdio.h>#include<vector>using names...

2019-04-24 16:22:47 1118 3

原创 C++字符分割函数strtok()的用法

最近遇到需要对输入string类型数据按逗号或者空格进行分割的情况,但strtok函数要求输入char *类型数据,但我直接接收的是string类型,所以先要对数据类型进行转换,然后再使用。#include<iostream>#include<vector>#include<string>using namespace std;int main(){...

2019-04-23 15:31:38 858 2

原创 《2019腾讯、阿里实习生电话面》

1.问了快速排序原理?2.使用了或者了解过哪些设计模式?3.介绍一下TCP的原理,还有三次握手步骤,syn flood洪水攻击。4.介绍一下你的项目,项目中数据库查询是怎么处理的,数据库分表之后如何处理跨表的查询,数据库主从分离使用过吗?数据库如何进行优化的?如何判断sql语句是否命中索引?慢查询日志?5.了解linux系统吗,linux下线程和进程,进程的通信机制,socket和消息对列...

2019-04-21 11:27:38 402

原创 《经典排序算法-快速排序》

快速排序是实践中已知的最快的排序算法,平均运行时间O(NlogN),该算法之所以快是因为非常精炼和高度优化的内部循环。它也是一种分治的递归算法,将数组S排序的基本算法由下列简单的四步组成:如果S中元素个数是0或1,则返回。取S中任一元素v,称之为枢纽元。将S-{v}分成两个不相交的集合S1={x∈S-{v}|x<=v}和S2={x∈S-{v}|x>=v}返回quicksort...

2019-04-17 22:07:27 411

原创 《经典排序算法-归并排序》

归并排序的最坏情形运行时间为O(NlogN),算法的基本操作是合并另个已排序的表,因为这两个表是已排序的,所以将输出放到三个表时通过对输入数据一趟排序来完成。基本的合并算法是取两个输入数组A和B,一个输出数组C,以及三个计数器Aptr, Bptr, Cptr,他们初始置于对应数组的开始断,A[Aptr]和B[Bptr]中较小者被拷贝到C中的下一个位置,相关的计数器向前推进一步,挡脸个输入表有一个用...

2019-04-17 22:04:03 257

原创 C++面试常考的手撕代码题型总结

最近打算总结一下C++面试常考的手撕代码,下面是总结的可能手撕代码的来源,确实有点多,不过能写出这些代码对了解底层原理和提升编程能力还是有很大帮助的。各种常用的排序算法:冒泡、快排、插入、堆排序、希尔、基数或桶排序查找算法:二分查找、插值查找、顺序查找数据结构:链表、树、堆、栈、顺序表各种字符串函数如strcmp()与strncmp()智能指针share_ptr,weak_ptr,un...

2019-04-16 22:30:03 3602

原创 分享一些C++软件开发&&后台开发复习必备电子书单

关于C++和python的书:C++ Primer Plus 第6版Effective C++中文版Effective_STL中文版STL源码剖析简体中文版Python Cookbook第三版中文数据结构和算法:数据结构与算法分析:C语言描述大话数据结构剑指offer程序员面试宝典网络通信:计算机网络(第7版)-谢希仁UNIX 环境高级编程unix网络编程第2版(1+...

2019-04-15 22:44:34 722

原创 《经典排序算法-堆排序》

堆排序堆排序可以达到O(NlogN)的最佳运行时间,实践中却慢于Sedgewick序列的希尔排序。建立N个元素的二叉堆的的花费时间是O(N),然后执行N次DeleteMin操作,按顺序最小的元素先离开堆,将这些元素记录到第二个数组再将数组拷贝回来,得到N个元素的排序,每次DeleteMin花费时间O(logN),因此总的运行时间O(NlogN).该算法主要问题在于使用了一个附加数组,存储需求...

2019-04-15 22:26:01 768

原创 《经典排序算法-希尔排序》

希尔排序希尔排序也叫缩小增量排序,希尔排序使用一个序列h1,h2,…ht,叫增量序列,使用增量hk的一趟排序之后,对于每一个i我们都有A[i]<=A[i+K];所有相隔hk的元素都被排序,称文件为hk排序的。希尔排序重要性质是hk排序的文件保持它的hk排序性。hk排序对于hk,hk+1,…N-1中的每一个位置i,把其上的元素放到i,i-hk,i-2*hk…中间的正确位置上,一趟hk排序...

2019-04-15 22:24:14 252

原创 《经典排序算法-插入排序》

内部排序:整个排序工作可在主存中完成。外部排序:不能再主存中完成而必须在磁盘上完成的排序。排序算法的下界:通过计算排列中平均逆序数而得出插入排序平均运行时间的精确的界。定理1—N个互异的的数组的平均逆序数是N(N-1)/4。定理2—通过交换相邻元素进行排序的任何算法平均需要Ω(N^2)时间。插入排序算法:插入排序有N-1趟排序组成,对于P=1趟到P=N-1趟,插入排序保证从位置0到位...

2019-04-15 22:21:50 272

原创 程序员必备的提升工作效率的方法

程序员提升工作效率的几个方法最近一段时间,互联网行业的996.icu新闻闹得沸沸扬扬,很多公司都要求上班996,如此高强度的工作下必定是公司也给员工分配了足够分量的工作量,并且当前互联网行业竞争激烈,不加班几乎不太可能,至少未来很长一段时间是如此,况且人生苦短,当然要留出点时间及时行乐啊。想要工作内容少,就不能保证高工资。换不了行业就唯有提升自己工作效率这条路了,下面就结合我自身情况整理了一下...

2019-04-13 11:11:34 1236

原创 2020届华为软开实习笔试题答案

题目一:现有多组整数数组,需要将他们合并成一个新的数组。合并规则,从每个数组按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉,如果该行不足固定长度或者已经为空,则直接取出剩余部分的内容放到新的数组中,继续下行。如样例1,获得长度3,先遍历第一行,获得2.5.6 ;再遍历第二行,获得1,7.4;再循环回到第行.获得7,9,5 ;再遍历第二行,获得1,7,4;再循环回到第1行,获...

2019-04-12 11:14:38 6865 1

原创 2020届华为C++软件开发实习面试经验

前几天去华为实习面试(虽然笔试0AC,还是收到面试通知),现在记录一下面试心得,后面继续好好准备。实习面试分技术面和综合面:1.感觉技术面试重视基础,问c++的基础知识比较多,其它的比如网络通信和多线程都是根据简历中问,感觉问的也不是特别深入。2.笔试没通过的题下来一定要再做一遍,我一上来面试官就让我再把之前没通过的题再手写一遍,好在头天都敲过一遍,但是手写还是出了一点小错误。3.简单的数...

2019-04-11 15:33:45 1953 1

原创 腾讯软开笔试题

小Q定义了一种数列称为翻转数列:给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4…, 每隔m个符号翻转一次, 最初符号为’-’;。例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.而n = 4, m = 1, 数列就是: -1, +2, -3, + 4.小Q现在希望你能帮他算算前n项和为多少。输入描...

2019-04-04 16:06:51 433

C++软件开发必备书单

里面包含了一些常用的C++软件开发必备书单,尤其适合准备找工作的盆友们,包含了C++、Stl、python、数据结构和算法、计算机网络等知识。具体内容可见原文:https://blog.youkuaiyun.com/HuYingJie_1995/article/details/89322831

2019-04-16

七参数法三维坐标旋转平移C++程序

本程序实现了基于七参数法的旋转平移矩阵,可以实现对三维坐标图像的旋转、平移,其中旋转包含了六种旋转顺序(xyz,xzy,yxz,yzx,zyx,zxy)可根据需要选择对应的参数,开发环境VS2013 程序实现参考了文章《朱宁宁. 三维基准转换七参数初始值解算的两种简便模型[J]. 测绘与空间地理信息, 2014(4):78-82》. 构造函数传入源点云original_cloud:coordinatetransform(pcl::PointCloud::Ptr original_cloud) 函数声明参数分别为:旋转顺序、绕xyz轴旋转角度、沿xyz轴平移量、输出点云。 bool Transform(int RotateOrder,double RAngleX, double RAngleY, double RAngleZ, double DetX, double DetY, double DetZ, pcl::PointCloud::Ptr cloudOut);

2019-03-10

倍加福扫描仪资料

本资料包含了倍加福激光扫描仪(p+f OMD10M30M-R2000)的中文说明书(我自己翻译的)、英文说明书、编程的指令手册、还有报文的数据帧格式。

2018-09-11

SICK扫描仪LMS5XX资料

本资源包含了SICK扫描仪LMS5XX系列的中文操作手册、英文说明书、LMS500的报文解析内容。

2018-09-11

空空如也

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

TA关注的人

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