自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于TCP的简单通信例程

代码说明:本程序使用TCP相关函数构建通信,使用pthread文件构建多线程实现同时收发。一个服务器可连接多个客户端,可接收多个客户端发送的文件信息,但是服务器发送由于键盘输入,所以不确定回复给哪个客户端。服务器使用8080端口,客户端使用8081端口(可改)相关代码://客户端#include <stdlib.h>#include <stdio....

2020-02-14 17:55:00 909

原创 基于UDP的简单通信例程

相关代码://客户端代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in...

2020-02-14 17:49:23 537

原创 KMP算法(c++实现)

#include <iostream>#include <string>#include <vector>#include <iterator>#include <algorithm>using namespace std;//http://www.ruanyifeng.com/blog/2013/05/Knuth%E2...

2019-11-07 14:34:12 235

原创 【Linux网络编程】学习笔记(不定期更新)

一、操作系统概述1、Linux内核主要模块:进程调度(SCHED分三个策略:other、fifo、rr)、内存管理(MMU)、虚拟文件系统(VFS)、网络接口(网络协议、驱动程序)、进程间通信(管道方式、信号方式、消息队列方式、共享内存方式、套接字)2、文件结构二、编程环境一、vim基础知识修改配置在/etc/vim/vimrc文件中修改,添加set shift...

2019-07-28 11:34:19 312

原创 Eigen库基础操作

声明、初始化Eigen提供了很多内置类型,但是底层均为Eigen::Matrix。例如Vector3d是<double,3,1> Matrix3d是<double,3,3> Eigen::Matrix<float, 2, 3> matrix_23; //申明一个2x3的float矩阵 Eigen::Vector3d v_3d; ...

2019-04-16 11:10:10 1520

原创 Ubuntu下常见操作(不定期更新)

C/C++系列编译单个.cpp文件方法一:g++ test.cpp //生成a.out可执行文件g++ -o test.out test.cpp //生成test.out可执行文件方法二:g++-c test.cpp -o test.o //生成test.o可执行文件g++g++ -o test.out test.o //将test.o...

2019-04-09 17:05:55 275

原创 数据结构【第十八天】:排序(希尔排序、堆排序、归并排序、快速排序)

目录希尔排序堆排序堆排序算法复杂度分析归并排序递归实现复杂度分析非递归实现快速排序代码实现复杂度分析快速排序优化希尔排序基本思想:采用跳跃分割的方式,将相距某个增量的记录组成一个子序列,这样才能保证子序列内分别进行直接插入排序后得到的结果是基本有序而不是局部有序。随着增量减少,最终实现整个序列有序。//对顺序表L做希尔排序void S...

2019-03-28 12:51:50 382

原创 数据结构【第十七天】:排序(基本概念和简单排序算法)

基本概念假设含有n个记录的序列为{r1,r2,...,rn},其相应的关键字分别为{k1,k2,...,kn},需确定1,2,3...,n的一种排列p1,p2,...,pn,使其相应的关键字满足kp1<=kp2<=...<=kpn非递减(非递增)关系,即使得序列成为一个按关键字有序得序列{rp1,rp2,...,rpn},这样的操作称为排序。排序得依据是关键字之间的大小关...

2019-03-27 16:52:19 216

原创 数据结构【第十六天】:查找(三)

散列表(哈希表)查找概述散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。这种对应关系f称为散列函数,又称为哈希函数采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表关键字对应的记录存储位置称为散列地址散列技术既是一种存储方法也是一种查找方法,散列技术的记录之间不存在什么逻辑关...

2019-03-23 13:48:53 421

原创 数据结构【第十五天】:查找(二)

二叉排序树又称二叉查找树。它或是一棵空树,或者是具有以下性质的二叉树:1.若它的左子树不空,则左子树上所有结点的值均小于它的根结构的值;2.若它的右子树不空,则右子树上所有结点的值均大于它的根结构的值;3.它的左、右子树也是二叉排序树二叉树的结构定义//二叉树的二叉链表结点结构定义typedef struct BiTNode{ int data; //数...

2019-03-23 11:20:04 213

原创 数据结构【第十四天】:查找(一)

查找基本概念查找表:由同一类型的数据元素(或记录)构成的集合。关键字(键值):是数据元素中某个数据项的值主关键字:该关键字可以唯一表示一个记录次关键字:可以识别多个数据元素(或记录)查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)查找按照操作方式可分:静态查找表和动态查找表静态查找表:只做查找操作的查找表1.查询某个特定的数据元素是否...

2019-03-18 20:06:51 352

原创 数据结构【第十三天】:图(四)

图的应用三、拓扑排序 在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,称为AOV网,AOV网中不能存在回路。 设G=(V,E)是一个具有n个顶点的有向图,V中的顶点序列v1,v2,......,vn,满足若从顶点vi到vj有一条路径,则在顶点序列中顶点vi必在顶点vj之前,则我们称这样的顶点序列为一个拓扑序列...

2019-03-16 18:32:01 279

原创 数据结构【第十二天】:图(三)

图的应用一、最小生成树针对带权值的无向图,即网结构,使用n-1条边连接n个顶点,且使权值的和最小。我们把构造连通网的最小代价生成树称为最小生成树1.普利姆(Prim)算法对于如下例子输入以上的邻接矩阵,利用prim算法生成最小数const int MAXVEX = 9; //顶点最大数,设为9const int INFINITY = 65535; /...

2019-03-15 21:38:36 263

原创 数据结构【第十一天】:图(二)

图的存储结构1.邻接矩阵使用两个数组表示图,一个一维数组存储图中的顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息无向图例子无向图的边数组为对称矩阵即aij = aji顶点的度为该顶点所在行的元素和求顶点的邻接点就是该行中为1的顶点有向图例子有向图的边数组并不对称从v0到v1的弧在数组中记为a01 = 1顶点的入度为列和,出度为行和网...

2019-03-15 10:47:22 415

原创 数据结构【第十天】:图(一)

图基本定义图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。注意:在图中数据元素称之为顶点,且顶点集合V是有穷非空的,即不存在空图这个定义图按照有无方向可分为无向图和有向图无向边:顶点vi与vj之间的边没有方向,用(vi.,vj)表示,也可用(vj,vi)表示有向边:顶点vi到vj之间有方向...

2019-03-12 18:10:09 290

原创 数据结构【第九天】:树(三)

线索二叉树 由于二叉树的每个结点均有两个指针域,一个指向左孩子,一个指向右孩子。但是叶子并不存在左右孩子,会有许多的空指针浪费空间。于是我们将利用这些空地址,存放指向结点在某种遍历次序下的前序和后继的结点地址。 我们将这种指向前驱和后继的指针称为线索,加上线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树。 对二叉树以某种次序遍历使其变为线索二叉...

2019-03-11 20:23:10 346

原创 数据结构【第八天】:树(二)

二叉树基本概念定义:二叉树是n(n&gt;=0)个结点的有限集合,该集合或者为空集,或者由一个结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。特点:1、每个结点最多有两棵子树,可以没有或者有一颗2、左子树和右子树有区别,顺序不可颠倒3、即使只有一棵子树也需要区分左右特殊的二叉树:斜树:所有结点只有左子树,称为左斜树;右斜树同理;满二叉树:所...

2019-03-08 16:23:05 460

原创 数据结构【第七天】:树(一)

树基本概念定义:树( Tree)是 n(n&gt;=0) 个结点的有限集。n=0时称为空树。在任意一棵非空树中:1.有且仅有一个特定的称为根 (Root)的结点;2.当 n&gt;1 时,其余结点可分为 m (m&gt;O) 个互不相变的有限集 T1 、T2、……、Tm ,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。性质:1.n&gt;0时根节点...

2019-03-07 18:58:30 243

原创 数据结构【第六天】:串(字符串)

串由零个或者多个字符组成的有限序列,又名字符串区分空格串和空字符串ADT 串(string)Data 串中元素仅由一个字符组成,相邻元素具有前驱和后继关系Operation StrAssign(T,*chars); //生成一个值等于字符串常量chars的串T StrCopy(T,S); //若串S存在,由串S复制得串T Clear...

2019-03-06 17:45:42 296

原创 数据结构【第五天】:队列

队列只允许在一端进行插入操作,而在另一端进行删除操作的线性表,即是一种先进先出(FIFO)的线性表。抽象数据类型ADT 队列(Queue)Data 元素具有相同的类型,相邻的元素具有前驱和后继的关系Operation InitQueue(*Q) //初始化操作,建立一个空队列Q DestroyQueue(*Q) //若队列Q存在,则...

2019-03-05 15:52:19 165

原创 数据结构【第四天】:栈

栈限定仅在表尾进行插入和删除操作的线性表,允许插入和删除的一端称为栈顶,另一端称为栈底,不含元素的称为空栈,栈又称后进先出的线性表,简称LIFO(last in first out)结构栈的抽象数据类型ADT 栈(stack)Data 同线性表,元素具有相同类型,相邻元素具有前驱和后继的关系。Operation InitStack(*s); /...

2019-03-04 15:29:24 259

原创 数据结构【第三天】:线性表(二)

静态链表用数组描述的链表图转自网络存储结构#define MAXSIZE 1000 //即该链表最大长度为1000typedef struct{ ElemType data; //数据部分 int cur; //游标,为0时表示无指向}Componet,StaticLinkList[MAXSIZE]; 初始化Status...

2019-03-03 16:14:06 163

原创 数据结构【第二天】:线性表(一)

线性表线性表:0个或多个数据元素的有限序列,记{a1,a2,...,ai-1,ai,...an}长度为n,为0记为空表线性表应该具有的操作:ADT ListData {a1,a2,...,an},每个元素类型为DataType,除第一个元素外,每一个元素有且只有一个直接前驱元素,除最后一个元素外有且只有一个直接后继元素。Operation InitLi...

2019-03-01 22:03:17 161

原创 数据结构【第一天】:绪论与算法

绪论数据结构:是相互之间存在一种或者多种特定关系的数据元素的集合。数据结构分逻辑结构、物理结构逻辑结构:集合结构、线性结构、树形结构、图形结构物理结构:顺序存储结构、链式存储结构数据类型:指一组性质相同的值的集合及定义在此集合上的一些操作的总称。在C语言中数据类型可分为:原子类型:不可再分基本类型,包括整型等;结构类型:若干个类型组合而成,可在分,如整形...

2019-03-01 20:12:53 175

转载 vscode快捷键

2019-02-28 17:05:34 114

原创 个人vscode常用插件

ChineseC/C++CmakeCmake ToolsCmake Tools HelperCode RunerInclude AutocompleteROSPython

2019-02-28 17:04:07 247

原创 ROS16.04安装Eigen库

1.下载Eigen压缩包 安装方式分两种 一种需要编译 一种不需要 此处选择需要编译2.建立文件夹build_dir3.将原压缩包放入build_dir解压,改名为source_dir4.执行cmake source_dir5.执行sudo make install至此Eigen包安装完成,接下来修改ros的配置1.在项目的CmakeLists文件下加入find_pa...

2019-02-10 19:09:37 2761 2

原创 ubuntu下设置terminator

[global_config][keybindings][profiles]  [[default]]    palette = "#2d2d2d:#f2777a:#99cc99:#ffcc66:#6699cc:#cc99cc:#66cccc:#d3d0c8:#747369:#f2777a:#99cc99:#ffcc66:#6699cc:#cc99cc:#66cccc:#f2f0ec" ...

2018-12-18 17:38:43 651

原创 [HAL库]STM32之DMA方式串口发送

目的:使用cube软件实现DMA方式的数据发送和接收1.在cube Pinout中打开USART1,方式为异步通讯(Asynchronous);2.在cube Configuration中打开USART1 Configuration,添加DMA通道(接收改为循环方式)以及打开usart的全局中断,在NVIC中调整优先级3.生成代码,在keil中进行以下修改:1)在main文件中建立发...

2018-09-14 17:10:54 4294

原创 ubuntu下绑定串口名称

步骤如下:一、插上设备,使用lsusb命令查看设备的ID号 形式如ID 1a86:7523二、在文件夹/etc/udev/rules.d下新建一个文件为xxx.rules三、在该文件下写上KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666", SYMLINK+="hexapod"...

2018-09-14 17:10:19 2363

原创 [HAL库]STM32之外部中断

实现目标:按键按下一次 LED灯状态翻转一次1.在stm32cube中配置引脚信息、开启中断以及中断优先级,生成代码;2.在keil中 main函数无需添加 中断的配置在MX_GPIO_Init()中自动实现;3.在keil中 的gpio.c(为系统建立的)文件中,添加void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)函数的实现 即进入中断后...

2018-09-13 22:26:46 3928

原创 matlab中有关ros的函数

rosinit                      //开启连接rosshutdown           //断开连接rospublisher            //定义发布节点rostype                    //包含大部分自带的消息类型 如std_msgs等    例 nh = rospublisher('/package/nodename',rostype.s...

2018-07-03 20:08:12 729

原创 matlab与ros相互通讯(一)

目的:使用matlab自带的ros功能与另一台linux电脑的ros通讯,相互订阅节点消息步骤:1.linux端在~/.bashrc文件中添加export ROS_IP=192.168.1.101(为ubuntu的IP)2.linux端开启roscore3.matlab端命令setenv('ROS_MASTER_URI','http://192.168.1.101:11311') /...

2018-07-03 17:17:09 3284

使用HAL新库编写简单stm32程序总结

使用hal库进行简单的stm32程序编写,以及对各种实现方法的总结,包含点亮led灯、外部中断、定时器、DMA串口通讯等简单功能的实现。

2018-09-19

空空如也

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

TA关注的人

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