自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 进程占用CPU检测工具

根据进程pid统计cpu变化并存入文件中

2024-02-28 13:41:13 120

原创 C++的vector正确释放内存方式

尝试三: 在一段段屏蔽代码后发现vector_A在push_back()的时候发生了拷贝,然后临时变量未free,后续添加了临时变量的释放,程序内存占用问题得到解决(其中比较费解的是临时变量没有free掉,为什么会影响vector_A以及其他vector内存的清理)。尝试三:再仔细看每个vector的内部数据结构,发现vector_A的数据是使用malloc申请的内存,故需要特殊处理,free()掉其中每个元素,此次操作后内存占用依旧无变化。

2023-08-04 15:05:54 1583

原创 cartographer源码编译和参数优化

cartographer源码框架学习以及优化调参

2023-08-03 15:34:14 87

原创 Ceres库安装

【代码】Ceres库安装。

2023-08-03 15:33:31 591

原创 catkin_make install 使用解析

catkin_make install第三方库安装用法

2023-07-10 18:37:45 494

原创 Ros中常见点云滤波

常见的处理点云的滤波原理和代码示例,半径滤波,直通滤波,体素滤波

2023-03-09 13:51:10 396

原创 Linux&Docker&Ros相关命令

日常学习和工作常用docker命令和ros命令

2022-12-29 12:04:35 183

原创 C++实现堆排序

C++实现堆排序

2022-07-19 15:25:07 1392 2

原创  C++多线程交替打印数字(奇数偶数)

多线程交替打印1,2,3...10使用互斥锁实现#include <iostream>#include <thread>#include <mutex>using namespace std;mutex my_mutx;const int max_num = 10;int num;int num2;//使用锁交替打印-----beginvoid threadfuncjishu(){ while (1) { my_.

2021-03-26 17:22:56 1245

原创 C/C++内存管理

C/C++内存管理 (1)C/C++内存分布 栈:存放非静态局部变量/函数参数/返回值等等,栈是自上向下增长的 堆:用于动态内存分配,堆是自下向上增长的 数据段:存储全局数据和静态数据 代码段:可执行代码/只读常量 (2)new的使用 // 动态申请一个int类型的空间 ...

2019-09-08 15:08:55 205

原创 C/C++程序执行过程

程序执行过程 (1)预处理 预处理就是对源程序进行宏替换,条件编译,头文件展开,去除注释 (2)编译 编译阶段就是将上一步预处理后的文件进行语法分析,语义分析以及优 化后产生汇编代码文件 (3)汇编 汇编就...

2019-09-08 09:59:59 1588

原创 内联函数inline 和 宏define的区别

宏define 定义预编译时的宏只是在编译阶段进行简单的代码替换,多用于定义表达式和常量。 优点:1.定义的宏就是在编译阶段替换,不会像普通函数那样涉及到 2.参数的出栈和入栈,这样效率就高 缺点:1.这种宏定义在形式上类似于一个函数,但是在使用的时候,仅仅 是在做预处理器符...

2019-09-07 18:01:09 316

原创 GitHub基本使用

GitHub基本使用目的:根据github托管项目代码一、GitHub基本概念: 仓库(Respository):仓库用来存放项目代码,每个项目一个仓库 收藏(Start):收藏项目 复制克隆项目(Fork): 复制别人写好的项目 发起请求(Pull Request):克隆别人的项目自己做了改动,觉得比以前好,就 ...

2019-08-01 11:34:25 389

原创 IO多路转接(select/poll/epoll)

IO多路转接:多路复用 IO事件控制对大量描述符进行是否具备IO条件的事件(可读/可写/异常)进行监控 作用:处理描述符的高并发事件 多路转接模型: 就绪: 读事件就绪:缓冲区有数据可读取 写事件就绪:缓冲区有空闲空间/ select:内核中通过遍历描述符集合中的描述符,判断是否相应时间就绪;若描述 符就绪了,...

2019-06-30 08:50:09 199

原创 高级IO(五种IO模型)

五种IO模型: 阻塞IO 非阻塞IO 信号驱动IO 异步IO 多路转接IO1.阻塞IO 为了完成功能发起调用,若不具备完成条件,则等待完成后返回2.非阻塞IO 为了完成功能发起调用,若不具备完成条件,则立即报错返回阻塞与非阻塞的最大区别:发起调用之后是否立即返回3.1同步 ...

2019-06-30 08:38:21 272

原创 TCP网络通信三次握手与四次挥手

为什么三次握手是三次? 三次握手指的是客户端在与服务端建立连接时发送三次信号,首先客户端给服务端发送SYN请求,并且客户端进入SYN_SENT状态,这时候服务端监听到有新来的客户端要进行连接,于是服务端就给客户端回复SYN和ACK请求,并且服务端进入SYN_RCVD状态;接下来客户端收到消息后就进入ESTABLISHED状态,并且客户端给服务端发送ACK请求,当服务端接收...

2019-06-29 16:10:40 238

原创 网络通信--链路层

链路层:负责相邻设备间的数据帧传输---Ethernet--交换机 以太网协议字段:源mac地址,目的mac地址,网络层协议,数据,CRC校验和 相邻设备之间传输定位--通过mac地址来完成 mac地址:uint8_t mac[6]--48位--定位标识相邻的物理设备的物理网卡地址 ...

2019-06-29 15:38:51 610

原创 网络通信--网络层(路由器)

网络层 现在网络通信依然使用IPV4;IPV4 中的ip地址信息只有4g个;ip地址不够用;使用私网共同使用同一个ip地址 上网加上DHCP动态地址分配技术实现全民上网; 为了避免局域网中ip地址和互联网中的ip地址冲突,因此组建局域网必须使用一些指定的地址; 这些地址不能在互联网中出现...

2019-06-29 15:37:55 312

原创 网络通信----传输层:负责端与端之间的数据传输----TCP/UDP

传输层:负责端与端之间的数据传输----TCP/UDP 一、 UDP: UDP协议:无连接,不可靠,面向数据报(不会产生粘包问题) UDP协议报头:源端口,目的端口,数据包长度,校验和 校验和:二进制反码求和 面向数据报不会产生粘包问题:因为UDP数据包中...

2019-06-29 15:34:42 1751

转载 网络通信----应用层(http协议)

应用层知名协议HTTP URL:统一资源定位符 协议名称://用户名:密码@服务器地址:服务器端口/请求的资源路径?查询字符串#片段标识符 urlencode/urldecode: url的编码和解码 url为什么要编码:编码通常针对的是查询字符串,因为url中特殊字符都有特...

2019-06-29 15:28:32 317

原创 基于UDP/TCP网络套接字编程

套接字网络编程 : IP地址:唯一标识网络上的一台主机 IPV4:uint32_t ---为了便于记忆,以点分十进制字符串形式展示 IPV6:uchar addr[16]---不向下兼容IPV4---没有发展起来 saddr(源IP地址)--> daddr(目的IP地址) 从哪个主机发送...

2019-06-29 15:06:23 333

原创 C++初阶总结

C++初阶一、入门 二、类和对象三、内存管理四、模板五、STL六、C++文件IO

2019-05-16 20:58:38 321

原创 网络的协议分层

网络协议分层OSI七层参考模型 TCP/IP五层参考模型 对网络通信过程进行了分层: 每一层用什么协议,实现什么功能 应该提供什么服务,应该提供什么接口,方便形成标准,便于使用OSI---开放系统互联 应用层->表示层->会话层->传输层->网络层->链路层->物理层 TCP/IP五层模...

2019-05-14 19:52:00 468

原创 多线程

多线程 **** 1.线程概念:什么是线程,与进程的关系 进程就是一个运行中的程序,在操作系统中,一个程序运行起来,程序被加载到内存中, 操作系统创建一个进程描述符(进程控制块)PCB 对程序进行描述控制,因此进程就是pcb, 在Linux下就是task_struct结构体 Linux线程用进程pcb模拟,因此Linux的线程...

2019-05-14 19:47:38 123

原创 C++基本语法

一、命名空间1.概念 由于在C或C++中变量函数都是大量存在的,使用命名空间就是对标识符名称进行本地化,以避免命名冲突或名字污染2.定义 定义命名空间需要使用 namespace 关键字,后面跟命名空间的名称,最后面接一对{}即可,{}中的是命名空间中的成员//1. 普通的命名空间namespace N1 // N1为命名空间的名称{//...

2019-05-11 16:46:58 158

原创 用栈实现队列

使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回 1qu...

2019-04-20 17:48:52 153

原创 二叉树的前序遍历(非递归写法)

给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶:通过迭代完成/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode ...

2019-04-20 17:46:59 478

原创 linux--进程信号

进程信号 ** 信号:事件通知---软中断 信号基本认识:每个信号都对应了一个事件 linux信号的种类:kill -l 查看信号种类--62种信号 1 ~31 是非可靠信号(非实时信号) 34~64 是可靠信号(实时信号) 信号的生命周期 (1)信号的产生...

2019-04-19 23:27:02 237

原创 Linux基础IO

基础I/O ** 回顾C库的 IO 接口 linux下 IO 的系统调用接口 文件流指针 文件描述符 文件重定向 linux下ext2文件系统 indoe节点 软链接/硬链接 动态库/静态库生成 1.回...

2019-04-19 23:19:17 133

原创 Linux进程间通信

进程间通信 IPC ** 熟悉进程概念,掌握进程间通信机制 基本介绍:干什么,如何通信,为何这么复杂 进程间进行交流(数据传输,数据共享,进程间的控制,事件通知) 因为进程的独立性,因此通信需要双方拥有公共的媒介才能通信 而这个媒介由操作系统提供;因为通信场景不同,因此操作系统也...

2019-04-19 22:11:03 118

原创 C语言文件相关操作(fclose fopen.....)

文件的打开和关闭 文件的典型操作:打开文件 读文件 写文件 关闭文件 文件在读之前应该先打开文件,在使用结束之后应该关闭文件ANSIC规定使用 fopen 函数来打开文件,用 fclose 来关闭文件FILE *fopen( const char *filename, const char *mode );//打开文件//filename ...

2019-04-11 17:19:17 673

原创 C语言指针还可以这样理解

什么是指针?指针就是一个变量,用来存放地址,地址唯一标识一块内存空间 指针的大小是固定的4/8个字节(32位平台/64位平台)常见的指针都有哪些? 字符指针 数组指针 指针数组 函数指针 回调函数1.字符指针 字符指针类型char*,用法如下:int main(){ //字符指针两种使用方式 //第一种 char ch =...

2019-04-10 19:46:18 133

原创 自写mini-shell深入理解shell原理

    获取命令行参数-&gt;对数据进行解析-&gt;创建子进程-&gt;程序替换       scanf       解析出命令名和参数       fork        execvp/execlp 

2019-01-13 14:44:13 278

原创 linux系统编程—进程

进程概念     ***          冯诺依曼体系结构:现代计算机的硬件结构          五大硬件单元:                    输入设备:键盘等                    输出设备:显示器                    存储器:内存:30Gbps                                           硬盘:...

2019-01-13 14:43:37 270

原创 Linux常用工具

常用工具:        1. yum 软件包管理器        2. vim 文本编辑器        3. gcc 编译器        4. makefile 项目编译工具        5. gdb 调试器        6. git 1. yum 软件包管理器 1.1查看可安装的软件包            安装软件包            移除软件包    ...

2019-01-13 14:40:57 242

原创 初识linux以及基本操作

1.初识: linux,发展背景 multics--飞机大战 肯.汤普森--- unix(用汇编代码写的) 李娜丝--linux----开源 ,免费 发行版linux 操作系统=linux内核+外部应用 dabian ubuntu centos r...

2018-11-30 22:28:32 238

cnwizards.rar

欢迎您使用 CnPack IDE 专家包 For Delphi/C++Builder/BDS。该专家包是针对 Delphi/C++Builder/BDS 开发的一组 IDE 功能扩展工具,用来提高程序员开发的效率。 专家包以 DLL 的方式集成到 IDE 中,包括一组以菜单和快捷键调用的工具、扩展的属性编辑器、组件编辑器及代码、窗体资源模板等。当前支持的编译器有 Borland Delphi 5/6/7, C++Builder 5/6 和 BDS 2005/2006、RAD Studio 2007/2009/2010/XE/XE2/XE

2020-08-31

空空如也

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

TA关注的人

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