自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

注意路标

技术分享、学习记录

  • 博客(30)
  • 收藏
  • 关注

原创 Shell脚本的使用

基本介绍用途:shell是一个命令行解释器,为用户提供一个向linux内核发送请求的系统及程序,用户可使用Shell执行启动、挂起和停止一些程序。脚本格式要求:1)脚本以#!/bin/bash开头(一般通过#进行注释)2)脚本需要可执行权限#!/bin/bashecho "hello world"常用执行方式:1)赋予脚本+x权限,并执行脚本2)直接通过sh指令执行。...

2020-03-30 20:39:53 284

原创 Python使用小结

初始化Numpy中提供了zero(),ones(),empty()分别让在向量初始化时置为0、置为1和置为空矩阵相乘尽量使用np中三角函数,如np.cos(),np.sin()等等。你需要在下面的代码里面主要到这些点:(1):np.dot()如果碰到的是秩为1的数组,那么执行的是对应位置的元素相乘再相加;如果遇到的是秩不为1的数组,那么执行的是矩阵相乘。但是需要注意的是矩阵与矩阵相...

2020-01-15 17:49:54 369

转载 Word中公式编辑的快捷键

知乎上总结的已经比较完整,在此做一个整理。1.进入公式编辑的快捷键键入:[alt]+[=] 之后就可以按照微软约定的编程模式,快乐的敲代码了2.公式编程方法【空格】在 word 中起到了转换的作用,在公式结束后都接着空格。基本操作:根号\sqrt(a),然后敲空格 = 根号a开好多根\sqrt(b&a), 然后敲空格 = a开根号b好多次方a^b,然后空格...

2020-01-02 14:04:11 22483 11

原创 Robotic Tools的使用与机器人建模

上一篇文章介绍了matlab的基本使用和机器人工具箱提供的基本接口,本章将具体的机器人模型搭建以及过程中遇到的一些坑,其他的博文都介绍的是转动关节的模型搭建,本文将介绍直角坐标式机器人模型的搭建,即有转动关节又有移动关节。建模龙门焊接机器人的原图如下所示,这里使用的是武汉蓝讯的龙门式焊接机器人。运动模型和坐标系如下图所示,所有坐标系都建在O点位置。D-H参数表如下图所示:Mat...

2019-12-31 23:41:49 1690 1

原创 Matlab基础与机器人工具箱Robotics Toolbox的基本使用

基本命令主窗口主要需要关注的有三个部分,分别是命令行窗口、工作区和历史命令记录,直接在命令行窗口运行相关指令即可,如下图所示:clc:清屏log(x):x以e为底的对数log2(x):x以2为底的对数log10(x):x以10为底的对数var: 查看安装了哪些工具包mod(a,b):a对b取余sum(v):对v数组求和矩阵运算需要确保矩阵的维度是相同的使用英文的分号表示...

2019-12-27 21:29:31 7796

原创 fatal error RC1015: cannot open include file 'winres.h'解决方案

参考步骤: 项目——属性——配置属性——常规改之前的版本信息如下:然后对Windows SDK和和平台工具集两栏的版本号进行选择,选择当你VS使用的版本即可,如下图所示:造成这种错误主要原因是:VS会默认原始开发平台的SDK和工具集,你没有安装,自然无法正常编译。...

2019-12-09 17:33:59 2958

原创 C++动态库和静态库的使用

1. 引言动态库和静态库是常用的C++函数内部封装方式,有必要对其有一个深入的了解。2. 动态库与静态库的概念C++程序编译分** 预编译** -> 编译 ->汇编 ->链接这几部组成,其中链接时做的就是将目标文件与所需的附加目标文件链接,生成可执行文件。动态与静态的区别主要就在于库链接时候的状态,具体差别如下:静态库: 在链接的时候,会和汇编文件一起打包生成一个可执...

2019-12-08 15:28:24 563

原创 C++11常用功能

智能指针使用new和malloc申请的内存空间,没有被释放会造成内存泄漏,为了一劳永逸,提出了智能指针,自动回收内存。智能指针将一个计数器与对象相关联,引用计数器跟踪该类有多少个对象共享同一个指针,计数器初始化为1,当减少至0的时候就删除指针。常用指针简介auto_ptr:不支持复制(拷贝构造)和赋值(=),但是赋值时却不会报错,有很多问题。unique_ptr:在赋值和复制时会报...

2019-08-21 18:49:11 128

原创 C++内存分配

内存的分配方式静态分配:程序在编译与链接的时候分配的固定存储空间的方式。效率相对较高。动态分配:在程序的运行期间根据需要动态的分布存储空间,C语言中使用malloc、calloc、free进行分配和释放。C++使用new和delete来分配和释放。malloc申请的内存位于堆当中,后面还需要使用memset初始化这部分内存空间。alloca是向栈申请内存,无需释放。free释放上述申请...

2019-08-21 14:20:53 197

原创 常用设计模式与六原则详解

设计模式六大原则参考链接1.单一职责最简单的面向对象设计原则,用于控制类的颗粒大小。一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则。2.开闭原则面向对象的可复用设计的基石,是最重要的面向对象的设计原则,也是面向对象的目标。一个软件实体应该对拓展开放,对修...

2019-08-20 17:53:26 167

原创 位运算实现加减乘除

位运算符简介^: 按位异或;&:按位与; | :按位或

2019-08-20 10:53:45 171

原创 二叉树的详解与实现

简介二叉树的相关概念,如,树高度,节点层数,节点度数,路径,叶节点,分支节点,根节点,父节点,左节点,右节点,兄弟节点,祖先节点,子孙节点,左子树,右子树等基本概念,不再赘述。二叉树分类1、完全二叉树若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。一维数组可以作为完全二叉树...

2019-08-18 22:40:30 161964 17

原创 DFS(华为数独题解)

实际数独可能会解出多组,所以只能通过50%案例。//华为数独题目#include <iostream>#include <vector>#include <algorithm>#include <unordered_map>using namespace std;vector<vector<int>> ch...

2019-08-05 18:45:48 514

原创 华为笔试刷题

1、查成绩老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.我的解法:#include<iostream>#include<vector>#include<algorithm> using namespace std;int main(){ //N表示学生的数目,M表示操作的数...

2019-08-01 22:55:04 808

原创 C++技巧总结

字符串分割字符串截取0、find函数find函数原型:size_t find ( const string& str, size_t pos = 0 ) const;功能:查找子字符串第一次出现的位置。参数说明:str为子字符串,pos为初始查找位置。返回值:找到的话返回第一次出现的位置,否则返回string::npos1、使用std::string::substr()...

2019-08-01 21:51:16 150

转载 Linux中GDB的使用(转载)

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能:1、 启动程序,可以按照工程师自定义的要求随心所欲的运行程序。2、让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。3、当程序被停住时,可以检查此时程序中所发生的事,并追索上文。4、动态地改变程序的执行环境。5、不管是调试Linux内核空间的驱动还是调试用户空间的应...

2019-07-25 10:47:15 158

原创 Windows权限设置

背景介绍Win10家庭版取消用户组的权限相关管理功能,所以,只有通过 右键 -> 属性 -> 安全 -> 编辑,几个操作来修改对应文件夹的用户组权限,如下图所示:如果当前的用户组具备完全控制、修改等足够的权限则能够对当前的各组的权限进行配置,如下图,则权限能够配置成功。但如果当前的默认组的权限不够大,则会出现访问被拒绝的提示,权限修改将会不成功。如下图将SYST...

2019-07-21 14:54:46 1219

原创 Linux进程间通信

引言进程间除了可以使用 fork和exec传送打开的文件,也可以使用IPC(Inter Processing Communication)的方式通信。经典的IPC包括:管道、FIFO、消息队列、信号量、以及共享存储。在新的程序中要尽可能的避免使用消息队列和信号量,应该考虑全双工管道和记录锁,他们使用会更加的简单。共享存储依然有它的用途,虽然使用mmap函数也能提供同样的功能。管道管...

2019-07-21 14:43:19 175

原创 Linux线程间同步

前言一般的增量操作流程如下:1、从内存读取寄存器。2、在寄存器对变量进行增量操作。3、把新的值写到内存单元。如果两个线程在同一时间,对同一变量做增量操作,而不进行同步的话,结果可能会出现不一致,可能会增加1,也可能会增加2。如果是原子操作就不存在上述的竞争,数据总是顺序一致出现。锁(互斥量)pthread互斥量mutex可以在访问共享资源前对互斥量加锁,访问完之后释放互斥量。...

2019-07-20 18:16:53 79

原创 不同编译器下的各个数据类型的字节长度

各个数据类型比较16位编译器char :1个字节char*(即指针变量): 2个字节short int : 2个字节int: 2个字节unsigned int : 2个字节float: 4个字节double: 8个字节long: 4个字节long long: 8个字节unsigned long: 4个字节32位编译器char :1个字节char*...

2019-07-19 11:42:16 841

原创 C++中const详解

1、与define的区别具体来说,有以下几方面的区别:编译器处理方式define – 在预处理阶段进行替换const – 在编译时确定其值类型检查define – 无类型,不进行类型安全检查,可能会产生意想不到的错误const – 有数据类型,编译时会进行类型检查内存空间define – 不分配内存,给出的是立即数,有多少次使用就进行多少次替换,在内存中会有多个拷贝,...

2019-07-19 11:14:23 1136

原创 Linux信号的使用

概要信号时软件中断,一种处理异步事件的方法,每个信号都有一个名字,这些名字都是以SIG开头。产生信号的条件有很多种:1、当用户按下终端按键时,引发终端产生的信号。Ctrl+C等。2、 硬件产生信号,除了0、无效内存。3、进程被调用了kill函数。4、检测到了某个软件条件。比如SIGURG(网络链接传来数据)、SIGPIPE(在管道读进程已经终止)、SIGALRM(设置的定时器超时)。...

2019-07-18 22:32:49 90 1

原创 Linux进程关系

终端登陆Linux采用了管理文件方式,在/etc/inittab中包含了了配置信息,指定了init应该启动的终端设备。而在Ubuntu发行中,,使用放在/etc/init的*.conf命名的配置文件中。网络登陆Linux网络登陆与BSD基本相同,使用xinetd,等待大多数的网络连接。首先,init调用一个shell,使得其执行/etc/rc,由此启动守护进程xinetd,xinet...

2019-07-18 11:39:01 132

原创 Linux进程的终止

1.进程的终止方式根据《Unix高级系统环境》中的介绍,进程有5种正常终止方式:1、main函数种执行return语句。2、调用exit函数,他只终止运行程序和IO,不终止子进程。3、进程中的最后的一个线程执行return语句4、调用_exit或者_Exit函数。5、进程的最后一个线程调用pthread_exit函数。3种异常终止方式:1、调用了abort,产生SIGABRT信号...

2019-07-16 11:28:50 385

原创 单片机基础

推挽输出与开漏输出的区别推挽电路可以输出高低电平,连接数字器件,又两个三极管电路组成,每次只导通一个。开漏输出相当于输出直接接到三极管的集电极,需要接上拉电阻使用,适合做电流型驱动,有较大的吸入电流的能力。定时器的功能以及优势单片机的中定时器主要作用是用于计数,一次计数就是一个时钟周期,可以用于中断、延时计算、脉冲发送、脉冲检测等。具有稳定好、易于使用的优势,同时中断和定时器的使用极...

2019-06-29 19:43:01 160

转载 数据库设计方法

在做后端开发之前是没有完整的接触过数据库的(非科班的遗憾),之后做移动开发一般都是把数据库做缓存使用(移动端的数据库使用是比较简单的),随着对后端学习的深入,逐渐发现后端的数据库设计是很重要的一个话题,数据库是整个应用的基石,需要考虑的场景涵盖的内容都会很复杂。所以近期又系统的学习了数据库相关的知识,遂有本文的总结。历史在数据库诞生之前使用最多的是文件系统,常用的格式是 CSV - Comma...

2019-06-28 09:00:21 307

原创 德州扑克C++实现

游戏介绍游戏介绍链接简单介绍:从上到下分别是:同花顺、四条、三带二、同花、顺子、三带一、两对、一对、杂牌。A可以当1和14。编程实现程序分析PockerGame.hpp:实现具体游戏流程,对洗牌、发牌、码牌、判断输赢等操作进行控制。Card.hpp:实现对卡片花色、卡片数值的定义和打印等操作。需要注意,在windows 下需要用chcp 65001切换到UTF-...

2019-05-06 22:29:29 3624 3

原创 shared_ptr实现stock

Tips需要注意#include< memoy >头文件。shared_ptr和普通的指针用起来基本没啥区别,初始化有三种方式:1. shared_ptr< Obj > ptr(new Obj);2. shared_ptr< Obj > ptr = make_share< Obj >();3. 拷贝实现template <t...

2019-05-06 21:42:04 147

原创 井字棋游戏

游戏简介三连棋游戏(两人轮流在印有九格方盘上划“+”或“O”字, 谁先把三个同一记号排成横线、直线、斜线, 即是胜者)。程序提供随机算法和智能算法两种AI,随机算法使用随机数随意选择棋盘上的位置,智能算法通过对每隔落子位置权重的计算,选取最优的落子点。游戏实现#include <iostream>#include <vector>#include <cti...

2019-05-06 21:29:36 467

原创 常用排序算法

1.快速排序(使用最常见的排序算法)插入排序是一个分治思想。Divide:数组A[p…r]分为两个子数组A[p…q-1],A[q+1…r],使得A[p…q-1]上所有元素小于A[q];A[q+1…r]上所有的元素都大于A[q]。Conquer:通过对快排的递归,对两个子数组A[p…q-1]和A[q+1…r]进行排序。Combine:分完就已经有序。实现//=========快排算法==...

2019-05-06 11:45:14 149

空空如也

空空如也

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

TA关注的人

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