自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小飞侠的博客

每一天都是余生最年青的一天,珍惜当下,不负韶华!

  • 博客(37)
  • 资源 (19)
  • 收藏
  • 关注

原创 基于A星算法的拓扑地图和栅格地图实现

基于A星算法的栅格地图和拓扑地图

2023-01-06 12:53:46 673

原创 GTest学习---Google单元测试框架

参考文档,共8篇系列文档:初识gtesthttps://www.cnblogs.com/coderzh/archive/2009/03/31/1426758.html断言https://www.cnblogs.com/coderzh/archive/2009/04/06/1430364.html事件机制https://www.cnblogs.com/coderzh/archive/2009/04/06/1430396.html参数化https://www.cnblogs.com/coder

2020-10-24 16:06:20 192

原创 自定义bash命令

自定命令,所有用户,永久生效vim /etc/bashrc...source /etc/bashrc自定命令,当前用户,永久生效vim ~/.bashrc...source ~/.bashrc自定命令,当前终端,临时生效alias mytest= 'chmod 777 tesh.sh && ./test.sh'取消自定命令unalias mytest...

2020-09-01 20:18:45 664

原创 流量监控脚本net_monitor.sh

#!/bin/bash ethn=$1 while truedo RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') sleep 1 RX_n

2020-08-24 23:22:27 790 1

原创 计时器C++

#pragma once#include <chrono>class CountTime {private: std::chrono::steady_clock::time_point beginTime;public: CountTime(){ begin(); } ~CountTime(){ } inline void begin(){ beginTime = std::chrono::steady_clock::now(); } inline void restart(

2020-08-16 15:25:59 123

原创 配置文件读写:ConfigFile.hpp(支持无段名的配置项)

支持无段名的配置项#ifndef __CONFIGFILEINI_H_#define __CONFIGFILEINI_H_#include <unordered_map>#include <fstream>#include <string>#include <vector>#include <sstream>#include <memory>#include <mutex>#define CONF_DEF

2020-08-16 15:25:10 423

转载 python压缩、解压文件

python压缩、解压文件#!/usr/bin/env python3# coding: utf-8import os, tarfiledef make_targz(output_filename, source_dir): """ 一次性打包目录为tar.gz :param output_filename: 压缩文件名 :param source_dir: 需要打包的目录 :return: bool """ try: wit

2020-08-16 08:13:04 119

原创 自制GDB使用教程

GDB使用教程参考文档:https://www.cnblogs.com/liangyc/p/11631823.html文章目录GDB使用教程开始调试设置断点: `break`或`b`删除断点: `delete`或`d`禁用/启用断点设置监视点查看断点/监视点信息查看代码: `list`或`l`打印变量信息: `print`或`p`查看调试信息: `info`或`i`查看变量的类型查看内存: `examine`或`x`流程控制多线程调试: `thread`或`t`查看堆栈帧: `backtrace`或

2020-07-26 23:16:22 259

原创 GIT自学教程

自制GIT教程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-86LPN4dJ-1594375264038)(C:\Users\x30006331\AppData\Roaming\Typora\typora-user-images\image-20200709145833887.png)]git clonegit addgit commitgit checkout例1:git checkout -- readme.txt解释:将readme.txt文件在工作

2020-07-12 00:01:18 397

原创 线程安全队列和线程安全MAP

//ThreadsafeQueue.h#ifndef COMMON_THREADSAFEQUEUE_H#define COMMON_THREADSAFEQUEUE_H#include <queue>#include <memory>#include <mutex>#include <condition_variable>#include <chrono>#include <vector>// 调用等待函数时的返回值

2020-06-25 22:16:39 177

原创 图的最小生成树算法:Kruskal算法与Prim算法

图的最小生成树算法Kruskal算法Prim算法Kruskal算法<\span>struct Node {public: int val; Node * father; Node(int _val) { val = _val; father = this; }};struct Edge{ Node * snode; Node * enode; int weight; Edge(Nod

2020-06-25 22:14:48 118

原创 二叉查找树的实现C++

二叉查找树代码实现struct NODE{ NODE * left; NODE * right; NODE * father; int val; NODE(int v) :val(v){ left = nullptr; right = nullptr; father = nullptr; }};class BST{public: //插入节点,并返回根节点 NODE * Inser

2020-06-25 22:12:04 70

原创 设计模式实例代码-C++版本

[创建型-简单工厂模式](# 创建型-简单工厂模式)[创建型-工厂方法模式](# 创建型-工厂方法模式)[创建型-抽象工厂模式](# 创建型-抽象工厂模式)[行为型-责任链模式](# 行为型-责任链模式)[行为型-策略模式](# 行为型-策略模式)[创建型-单例模式](# 创建型-单例模式)[结构型-外观模式](# 结构型-外观模式)[行为型-观察者模式](# 行为型-观察者模式)[结构型-桥接模式](# 结构型-桥接模式)[结构型-组合模式](# 结构型-组合模式)[创建型-原型模式.

2020-06-25 21:52:12 292

原创 字符串处理相关函数

字符串处理相关函数//删除字符串开头的空格void trim_left(string & str){ auto it = std::find_if_not(str.begin(), str.end(), isspace); str.erase(str.begin(),it );}//删除字符串结尾的空格void trim_right(string & str){ while (std::isspace(str.back())) { str.pop_back();

2020-06-15 22:57:41 123

原创 设计模式-学习记录

设计模式的六大原则1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。当一个设计优良的程序遇上需求新增或变更的情况,应该具有很好的扩展性,而不是直接修改原有的接口。要达到这种效果,我们可以在程序中将一类方法或对象抽象成统一的抽象类。2、里氏代换原则(Liskov Substitution Principle)所有引用父类的地方必须能透明地使用其子类的对象。里氏替换原则告诉我们:在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常。

2020-06-14 21:39:29 83

原创 设计模式-单例模式C++实现

设计模式-单例模式C++实现本实现线程安全//Singleton.hpp#include <mutex>template<class T>class Singleton{public: static T *getInstancePtr() { if (m_instance == nullptr) { std::unique_lock<std::mutex> lock(m_mutex);

2020-06-14 21:36:48 134

原创 物理内存和虚拟内存

物理内存和虚拟内存​ 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多。因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。​ 物理内存就是系统硬件提供的内存大小,是真正的内存。相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为 交换空间(Swap Space)。​ 作为物理内存的扩展,linux会在物理内存

2020-06-14 21:28:05 1976

转载 进程调度 [转载]

进程调度 [转载]调度程序复杂决定哪个进程投入运行,合适运行以及运行时长。调度程序可看做在可运行态进程之间分配有限的处理器时间资源内核子系统。只有通过调度程序的合理调度,系统资源才能最大程度地发挥作用,多进程才会有并发执行的效果。1.多任务多任务就是操作系统能同时并发地交互执行多个进程。实际上是使多个任务处于阻塞或睡眠状态,这些任务位于内存,但是并不处于可运行状态,知道某一时间发生。Linux系统中往往有多个程序在内存,但是仅有一个处于可运行状态。多任务系统划分为两类:抢占式和非抢占式。Linux采

2020-06-14 21:25:52 101

原创 进程空间简介

进程空间简介进程空间分为:内核空间和用户空间。进程空间的分布如下图所示。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uAqqeQex-1592141032908)(C:\Users\36262\AppData\Roaming\Typora\typora-user-images\image-20200603162443715.png)]32位windows下,一个进程空间4G:内核占2G,用户占2G。一个线程默认栈是1M,所以一个进程最大开2048个线程。当然内存

2020-06-14 21:24:24 2452

转载 进程管理[转载]

进程管理[转载]进程是操作系统的基本概念,本节主要总结Linux内核如何管理进程:进程在内核中如何创建,消亡。1.进程与线程进程是处于执行期的程序,但不仅包含可执行的程序代码,还包括其他资源:打开的文件、挂起的信号、内核内部数据、处理器状态、一个或多个具有内存映射的内存地址空间和执行线程以及存放全局变量的数据段等。执行线程,简称线程,是进程中活动的对象。拥有独立的程序计数器、进程栈和进程寄存器。**内核调度的对象是线程而不是进程,**在Linux中线程是一种特殊的进程。2.进程描述符内核把进程的

2020-06-14 21:23:43 67

原创 AES对称加密C++实现及使用方法

AES对称加密高级加密标准(AES,Advanced Encryption Standard)是最常见的对称加密算法。对称加密算法也就是加密和解密用相同的密钥.明文P , 没有经过加密的数据。密钥K,用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏。AES加密函数 , 设AES加密函数为E,则 C = E(K, P),其中P为明文,K为密钥,C为密文。密文C ,经加密函数处理后的数据

2020-06-14 21:17:54 3324 2

原创 (一)基于BOOST ASIO封装的定时器

(一)基于BOOST ASIO封装的定时器代码//20190831 xushuilong#pragma once#include <iostream> #include <boost/asio.hpp>#include <boost/thread.hpp>#include <boost/bind.hpp>#include <boost/date_time/posix_time/posix_time.hpp>class Timer

2020-06-09 12:30:35 349

原创 (三)基于BOOST ASIO实现的UDP服务端和客户端

基于BOOST ASIO实现的UDP服务端

2020-06-01 16:05:47 2655

原创 (四)基于BOOST ASIO实现的异步TCP客户端与服务端

基于BOOST ASIO实现的异步TCP服务端

2020-06-01 16:01:34 1021

原创 (一)基于Mongoose的HTTP通信库

基于BOOST ASIO实现的异步TCP客户端

2020-06-01 16:01:01 2377 2

原创 常用STL算法

常用STL算法1、概述STL算法部分主要由头文件<algorithm>,<numeric>,<functional> 组成。要使用 STL中的算法函数必须包含头文件<algorithm>,对于数值算法须包含 <numeric>,<functional>中则定义了一些模板类,用来声明函数对象。算法由模板函数体现,这些函数不是容器类的成员函数,是独立的函数,它们可以用于STL容器,也可以用于普通的C++数组等。<function

2020-05-29 21:36:43 466

原创 valgrind工具的使用

一、valgrind简介Valgrind是一款用于内存调试、内存泄漏检测以及性能分析、检测线程错误的软件开发工具。Valgrind 是运行在Linux 上的多用途代码剖析和内存调试软件。主要包括Memcheck、Callgrind、Cachegrind 等工具,每个工具都能完成一项任务调试、检测或分析。可以检测内存泄露、线程违例和Cache 的使用等。Valgrind 基于仿真方式对程序进行调试,它先于应用程序获取实际处理器的控制权,并在实际处理器的基础上仿真一个虚拟处理器,并使应用程序运行于这个虚拟处

2020-05-29 21:35:54 384

原创 std::promise介绍及使用

[C++11]std::promise介绍及使用一、std::promise介绍std::promise (#include <future>)是C++11并发编程中常用的一个类,常配合std::future使用。其作用是在一个线程t1中保存一个类型typename T的值,可供相绑定的std::future对象在另一线程t2中获取。二、代码示例:下面我们通过几个简单小例子逐渐深入了解std::promise的使用方法。#include <iostream>#includ

2020-05-29 21:34:27 493

原创 Shell脚本编写的基础知识

一、Shell简介Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。实例如下:#!/bin/bashecho "Hello World !"#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序二、Shell变量定义变量your_name="runoob.com"

2020-05-29 21:33:13 410

原创 MarkDown流程图与时序图

一、简述流程图、时序图、甘特图,这些复杂图形的绘制都是使用代码块来实现的。指定代码块的解析语言,按照相应的绘制语法即可实现。图形类型解析语言样式流程图mermaid标准流程图flow样式时序图mermaid标准时序图sequence甘特图mermaid二、标准流程图的绘制绘制流程图分为两步:1.定义元素;2.定义元素之间的走向。定义元素的语法element_name=>element_type: content:>url/

2020-05-29 21:31:22 1908 1

原创 (二)基于mongoose的常用摘要算法

一、十六进制转字符串/****************************************************************************函数名称: hex_to_str函数功能: 十六进制转字符串*****************************************************************************/static void hex_to_str(char *dst, unsigned char *src, in

2020-05-29 21:29:31 229

原创 linux文本分析工具之`awk`

linux命令之awk一、awk的功能awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在对数据进行分析处理时,显得尤为强大。简单来说awk就是把文件逐行的读入,以指定的分隔符(默认为空格)将每行分成若干个field。然后可以通过编写各种逻辑,对这些field进行处理。实际上 awk 的确拥有自己的语言: AWK 程序设计语言。它允许你创建简短的程序,这些程序可以实现:读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。二、awk的命令格式

2020-05-29 21:27:12 238

原创 MySQL 之全文索引

最近在复习数据库索引部分,看到了 fulltext,也即全文索引,虽然全文索引在平时的业务中用到的不多,但是感觉它有点儿意思,所以花了点时间研究一下,特此记录。引入概念通过数值比较、范围过滤等就可以完成绝大多数我们需要的查询,但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较。全文索引就是为这种场景设计的。你可能会说,用 like + % 就可以实现模糊匹配了,为什么还要全文索引?like + % 在文本比较少时是合适的,但是对于大量的文本数据检索,是

2020-05-18 16:44:16 153

转载 Qt中漂亮的几款QSS

Qt中漂亮的几款QSS转载:https://www.cnblogs.com/newstart/p/4370203.html/* === Shared === */QStackedWidget, QLabel, QPushButton, QRadioButton, QCheckBox,QGroupBox, QStatusBar, QToolButton, QComboBox, QDialog...

2019-08-07 12:03:02 1214

原创 c语言string.h中的函数详解

linux kernel code : kernel/lib/string.cstrsep,strtok,strchr ,strstr …PS:本文包含了大部分strings函数的说明,并附带举例说明。本来想自己整理一下的,发现已经有前辈整理过了,就转了过来。@函数原型: char *strdup(const char *s)函数功能: 字符串拷贝,目的空间由该函数分配函数返回: ...

2019-06-22 20:46:48 4899

转载 linux的 find 命令详解

linux的 find 命令详解find命令:用来在给定的目录下查找符合给定条件的文件命令格式: find [OPTIONS] [查找起始路径] [查找条件] [处理动作]一、OPTIONS参数-P、-L、-H:控制软连接的对待方式,用的不多。不介绍了二、查找路径就是个目录路径,相对和绝对都可以。三、查找条件1、根据名称查找(1) -name “PATERN”(2) -ina...

2019-06-22 20:45:02 157

转载 MYSQL学习笔记-1

MYSQL学习笔记-1相关专业术语MYSQL数据库操作MYSQL数据类型常用SQL语句相关专业术语数据库: 数据库是一些关联表的集合。数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。冗余:存储两倍数据,冗余降低了性能,但提高了数据的...

2019-06-22 20:44:39 143

ttkbootstrap pythony库

ttkbootstrap pythony库

2022-03-06

network_2.rar

network_2.rar

2020-08-23

基于ASIO封装的网络库,支持TCP/UDP,支持长连接、短连接,支持组播、单播、广播

基于ASIO封装的网络库,支持TCP/UDP,支持长连接、短连接,支持组播、单播、广播

2020-08-23

boost_thread_pool.rar

BOOST 线程 池库源码

2020-08-18

常用工具封装成的头文件 C++

常用工具封装成的头文件 C++

2020-08-18

glog-0.3.5.tar

glog-0.3.5.tar

2020-08-18

json.rar,JSONCPP源码库

JSONCPP源码库;

2020-08-17

rdms-proxy.rar

xy 示例rd -ms

2020-08-17

已编译V120boost_1_61_0.rar

BOOST1_61_0已编译完成,直接使用即可.反正就是简单易用,方便好用。BOOST1_61_0已编译完成,直接使用即可.反正就是简单易用,方便好用。

2020-08-16

mongoose.rar

经过封装的基于mongoose的各类HTTP库,详细讲解内容请参看博客:https://blog.csdn.net/xushuilong/article/details/106474181

2020-08-14

glog_LIB.rar

glog 日志库和头文件整理,附教程,可直接使用。包含WINDOW下的动态库。LINUX下的SO库。经过封装后的头文件。只需包含init_glog即可。

2020-08-14

AGV系统运行路径优化技术研究

AGV系统运行路径优化技术研究

2017-08-02

A*,Dijkstra,BFS等搜路算法演示

A*,Dijkstra,BFS等搜路算法演示

2017-08-02

C数据结构完整PPT教材-大学课件

C语言 数据结构 完整教程 大学课件

2016-06-05

Visual_C++_6.0_MFC_入门教程-闻怡洋

Visual_C++_6.0_MFC_入门教程-闻怡洋

2016-06-05

STM32固件库手册

STM32固件库手册

2016-06-05

c语言指针完整教程

c语言指针完整教程 指针不会用 不敢用 你敢说自己会C吗

2013-08-19

数据结构全套教程(PPT)

老师讲课用的课件,个人觉得比较清晰,适合初学者入门!

2013-03-26

空空如也

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

TA关注的人

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