自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (4)
  • 收藏
  • 关注

原创 Linux中常用的操作命令以及vim操作命令和gdb调试命令

Linux简介及Ubuntu安装常见指令系统管理命令打包压缩相关命令关机/重启机器Linux管道Linux软件包管理vim使用用户及用户组管理文件权限管理大牛笔记-www.weixuehao.com来自:http://www.weixuehao.com/archives/25Linux简介及Ubunt

2021-01-11 16:35:14 3111 5

原创 C++编程获取本机网卡信息 本机IP 包括Windows和Linux

ifaddrs结构体定义如下:C代码structifaddrs{structifaddrs*ifa_next;/*Nextiteminlist*/char*ifa_name;/*Nameofinterface*/unsignedin

2017-10-31 14:56:46 4571 2

原创 软件架构常用设计

常用系统架构设计

2023-03-25 20:24:22 7380

原创 Linux运行环境搭建

1、安装Linux操作系统2、安装显卡驱动3、切换镜像源,更新系统库4、安装依赖库5、安装QT运行库6、

2022-01-13 17:45:42 458

原创 Linux下libusb库的安装与使用

一、下载libusb下载网址:http://www.libusb.org/这里我选择的是下载:libusb-1.0.24二、安装libusb解压后libusb-1.0.24,得到的是源代码。$ tar -jxvf libusb-1.0.24.tar.bz2$ cd libusb-1.0.24$ ./configure --prefix=/usr/local/libusb-1.0.24$ make$ make install三、可能遇到的问题1.udev support

2022-01-13 16:01:06 4700 2

原创 C++中的Lambda表达式

从C++11开始,一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。声明Lambda表达式Lambda表达式完整的声明格式如下:[capture list] (params list) mutable e

2021-10-22 13:41:56 359

原创 QCustomPlot绘图实现光标滑过曲线显示点的坐标

有两种方法可实现这个效果:1.通过关联QCustomPlot的mouseMove信号槽事件实现;2.通过继承QCustomPlot类,重写mouseMove虚函数实现;这个两个方法都是获取鼠标位置,然后计算出点的坐标值,利用QToolTip显示点坐标的方法。方向弄清楚了,现在我们去实现出来,go……一、信号槽方法1、首先建立一个鼠标移动时间响应函数:private slots: void MyMouseMoveEvent(QMouseEvent *event);2、将

2021-07-16 10:55:00 4041 3

原创 Linux,Unix,MacOS等其中的Bash脚本判别调用者、使用者的身份

加sudo运行bash脚本:经常要在bash脚本里面或者直接对脚本本身加上sudo运行命令,但是这引发了一系列的问题。比如用sudo的时候,脚本里的~或$HOME指代用户文件夹的这个变量,到底是应该指向我真正的用户文件夹如/home/pi呢,还是指向了超级管理员的用户文件夹/root/呢?实际上它指向了/root/文件夹,这是我们绝对不想要的。但是很多命令如安装个程序,都不得不用sudo,那怎么办?首先要说下经验:命令行的权限执行,从表现上来看,可以分为以下5种情况:admin-manu

2021-05-12 13:25:03 359 2

原创 Linux 环境下安装 gcc 详细过程 以及安装 glibc

1、了解一下gcc    目前,GCC可以用来编译C / C++、FORTRAN、Java、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。  在安装之前,系统必须有 cc 或者 gcc 的编译器,如果没有,就不能安装更高版本的 gcc 了,如果是这种情况,可以在网上找一个与你系统相适应的如 RPM 等二进制形式的 GCC 软件包来安装使用。  本文介绍的是以源代码安装 gcc 的过程,我安装的是在一个单独的目录下,以后想卸载的话,直接删除该目录就行。2、需要下载的安装包2.

2020-12-08 11:37:07 19139 6

原创 QT的绘图库 QCustomPlot 用法介绍 以及 使用 OpenGL 开启渲染

一、概述先简单介绍一下,绘制实时数据波形图,我们一般使用到的库有qwt、qcustomplot以及官方的QtCharts模块。qwt这个库安装比较麻烦。不过功能比较全使用的人比较多。 qcustomplot很精简小巧,就一个.h .cpp文件,但是功能也很强大健全。 QtCharts这个模块以前是收费使用的,现在已经免费了,官方出品。今天的主角是qcustomplot,使用的是最新的版本:下载地址:https://www.qcustomplot.com/QCustomPlot 是一.

2020-09-14 15:44:07 12681 7

原创 常用几大排序算法实现

本文主要罗列总结几大常用排序算法。1、冒泡法排序3种实现:2、直接插入法排序3种实现:3、希尔排序4、直接选择排序5、归并排序6、快速排序7、堆排序8、基数排序9、...

2020-08-27 14:27:28 338

原创 C++17 C17 中的新增功能std::filesystem

本文主要介绍C++17 / C17中的filesystem中的一些常用方法。C17中新增了filesystem功能,使得跨平台文件系统 操作使用便方便简易。一、windows环境下使用Visual Studio开发必须要vs2019才支持C++17新特性。VS2019默认不使用C17新特性,如需使用要手动打开此功能。二、linux环境下使用g++编译器,gcc编译器必须要升级到g++ 10.0.1版本才支持C++17的新特性。三、使用详情包含相关头文件...

2020-08-26 11:16:11 19670 1

原创 fstream的使用详解

ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(<<)  向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"WriteStdout"<<’\n’;就表示把字符串"WriteStdout"和换行字符(’...

2020-08-26 10:43:54 6784

原创 C++常用技术点梳理

一、static与volatile的用法二、new/delete与malloc/free的区别与详解三、C++ static_cast、dynamic_cast、const_cast和reinterpret_cast(四种类型转换运算符)四、POD类型与非POD类型用法区别五、TCP连接的三次握手与四次挥手六、实现memcpy内存拷贝,注意参数检查和内存重叠七、输入数学公式...

2020-03-06 23:19:55 1773

翻译 RPC框架实现之容灾策略

RPC(Remote Procedure Call,远程过程调用)框架是分布式服务的基石,实现RPC框架需要考虑方方面面。其对业务隐藏了底层通信过程(TCP/UDP、打包/解包、序列化/反序列化),使上层专注于功能实现;框架层面,提供各类可选架构(多进程/多线程/协程);应对设备故障(高负载/死机)、网络故障(拥塞/网络分化),提供相应容灾措施。分布式服务后台Server通常基于普通的x...

2019-03-07 14:14:52 1582

原创 C++的4种智能指针剖析使用

 1. 智能指针背后的设计思想我们先来看一个简单的例子:void remodel(std::string &amp; str){ std::string * ps = new std::string(str); ... if (weird_thing()) { return; } str = *ps; del...

2018-11-15 14:31:43 524

原创 通用 Makefile 的编写方法以及多目录 makefile 写法

1 make分中预定义变量表$* 不包含扩展名的目标文件名称。$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。$&lt; 第一个依赖文件的名称。$? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。$@ 目标的完整名称。$^ 所有的依赖文件,以空格分开,不包含重复的依赖文件。$% 如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标...

2018-06-13 16:59:15 1540

原创 Linux用户及用户组添加和删除操作

查看用户whoami #要查看当前登录用户的用户名who am i #表示打开当前伪终端的用户的用户名who mom likes123who 命令其它常用参数参数 说明-a 打印能打印的全部-d 打印死掉的进程-m 同am i,mom likes-q 打印当前登录用户数及用户名-u 打印当前登录用户登录信息-r 打印运行等级1. 创建用户adduser newna...

2018-06-05 17:30:37 5693

原创 Linux下安装Mysql数据库开发环境

Linux搭建Mysql数据库开发环境 1.MySQL 概述 【1】MySQL :Oracle旗下的开源关系型数据库,这里选择版本。【2】 MySQL Community Edition:Mysql开源社区版本,目前最新版本:8.0.11MySQL Community Edition is the freely downloadable version of the world’s most po...

2018-05-18 11:40:26 843

翻译 C# string.Format使用说明

string.Format的五种重载:string.Format(string,object)将指定字符串中的一个或多个格式项替换为指定对象的字符串表示形式。 string.Format(string,object,object)将指定字符串中的格式项替换为两个指定对象的字符串表示形式。 string.Format(string,object,object)将指定字符串中的格式项替换为三个指定对象...

2018-03-15 15:29:25 2401

原创 JavaScript中常见的字符串操作及函数用法

对于很多经常用到的字符串处理函数却不能牢牢记住他们的用法,总不得不去求助于XX手册或者XX指南再或者百度谷歌。而这样做的结果就是,这些非常关键的基础知识却夯的不足够结实,在遇到这些题的时候不得不用N层嵌套的for循环去逐个遍历。这是个信号,当你发现你在做这种类型的题的时候,用的for循环过多,那么注意了,很有可能你已经写偏了。别小看了这些东西,没准在找工作和平常开发中起到大作用。好了,不多说了,我

2018-01-06 13:35:46 522

原创 服务端使用c++实现websocket协议解析及通信

WebSocket 设计出来的目的就是要使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力。 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。因为 WebSocket 连接本质上就是一个 TCP 连接,所以在数据传输的稳定性和数据传输量的大小方面,和轮询以及 Comet 技术比较

2017-12-30 20:39:04 5735 2

原创 23种设计模式详解及C++实现

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。...

2017-11-11 16:09:58 4764 1

原创 HTTP协议/RTP/RTSP协议/RTMP协议的区别

RTSP、 RTMP、HTTP的共同点、区别共同点:1:RTSP RTMP HTTP都是在应用应用层。2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP。做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了。 区别:1:HTTP: 即超文本传送协议(ftp即文件传输协议)。

2017-11-04 00:22:32 8925

原创 socket通信网络模型 ——Epoll、IOCP模型详解以及与select、kqueue等常见模型的区别特点

什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 转自

2017-11-04 00:03:24 3260

原创 图像处理基本算法(汇总)以及实现

1)将256*256分辨率的图像变为128*128分辨率可以将源图像划分成2*2的子图像块,然后将2*2的子图像块的所有像素颜色均按照F(i,j)的颜色值进行设定,达到降低分辨率的目的。如:F(i,j)    F(i,j+1)                  F(i,j)  F(i,j) F(i+1,j)  F(i+1,j+1)   变成   F(i,j)  F(i,j)

2017-09-21 22:21:06 20852 1

原创 Windows下关于多线程类 CSemaphore,CMutex,CCriticalSection,CEvent,信号量CSemaphore的使用介绍

信号量是CSemaphore的对象,该对象的作用是对访问某个共享资源的线程的数目进行控制。CSemaphore类的构造函数原型如下:CSemaphore( LONG lInitialCount /* = 1 */, //计数器的初始值 LONG lMaxCount /* = 1 */, //计数器的最大计数值 LPCTSTR pst

2017-08-15 11:21:24 558

原创 SQL中的CONSTRAINT用法总结

主要就是增加数据约束的。Oracle中的约束简单介绍约束 Including Constraints 在数据库中使用约束(constraints)是为了在该数据库中实施所谓的"业务规则"其实就是防止非法信息进入数据库,满足管理员和应用开发人员所定义的规则集. ORACLE使用完整性约束(integrity constraints)防止不合法的数据

2017-08-15 10:47:00 108795 2

原创 Java中Set转List 和 TreeMap中实现自定义类作为key值

Map转Set & Set转List //构造Map数据 Map map = new HashMap(); map.put("ele1", "小樱"); map.put("ele2", "若曦"); map.put("ele3", "晴川"); Set set = map.keySet(); //Se

2017-07-31 17:41:42 2290

原创 多年来,STL容器的使用总结!

第1条:慎重选择容器类型。标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一“重型”string。非标准的关联容器hash_set、hase_multiset、hash_map和hash_mult

2017-02-20 16:31:49 1741

原创 sql server中count(*),count(col),count(1)的区别

前言记得很早以前就有人跟我说过,在使用count的时候要用count(1)而不要用count(*),因为使用count(*)的时候会对所有的列进行扫描,相比而言count(1)不用扫描所有列,所以count(1)要快一些。当时是对这一结论深信不疑,虽然不知道为什么。今天正好有时间研究研究看count(*)和count(1)到底有没有性能差异。我的测试环境是SQL Server 2005 S

2017-01-24 16:52:12 724 1

翻译 文档类程序各个类之间的相互访问关系

在实际的应用中,经常需要在多个类之间交换数据,调用另一个类中的函数,框架提供一系列的函数用于多个类之间的交互1.MFC单文档应用程序的类与类之间的访问(1)在所有类中获取App指针:CWin *pApp=AfxGetApp();CXXXApp *pMyApp=(CXXXApp*)pApp;(2)所有类中获取CMainFrame类指针:CM

2017-01-08 23:00:50 2368

翻译 Mysql命令教程大全

1、连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即

2016-12-19 14:00:38 381 1

翻译 线程池原理及创建并C++实现

本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。为什么需要线程池目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有

2016-12-16 15:40:14 8870 1

原创 Linux git 常用命令

一、 Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:nd

2016-12-16 11:29:17 3210 1

原创 Linux 线程操作函数技能总结

线程操作函数总结1、线程创建函数int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg); 返回值:若是成功建立线程返回0,否则返回错误的编号 形 参: t

2016-01-07 14:16:53 2709

原创 "undefined reference to" 多种可能出现的问题解决方法

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func'     关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1.  链接时缺失了相关目标文件(

2015-11-19 16:07:12 19416

原创 Protocol Buffer技术 语言规范

该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo。这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流。需要说明的是,Blog的内容并非line by line的翻译,其中包含一些经验性总结,与此同时,对于一

2015-11-15 21:26:34 1555

原创 GDB调试各功能总结

初识GDB GDB的出现减轻了开 发人员的负担,他们可以在程序运行的时候单步跟踪自己的代码,或者通过断点暂时中止程序的执行。此外,他们还能够随时察看变量和内存的当前状态,并监视关 键的数据结构是如何影响代码运行的。     调试方法     如果想对程序进行调试,必须先在用GCC编译源代码时加上-g选项,以便产生GDB所需要的调试符号信息。例如,debugme.c是一个存在错误

2015-11-05 17:07:09 7194

原创 memcached了解使用和常用命令详解

官网地址:http://memcached.org/Memcached是什么?  Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户

2015-10-21 18:13:53 729

QCustomPlot source yuanma

QCustomPlot 是一个基于Qt的画图和数据可视化C++控件。QCustomPlot 致力于提供美观的界面,高质量的2D画图、图画和图表,同时为实时数据可视化应用提供良好的解决方案。 该绘图库专注于制作美观、出版物质量高的2D绘图、图形和图表,并为实时可视化应用程序提供高性能。 QCustomPlot官网下载:https://www.qcustomplot.com/index.php/download QCustomPlot 图表类:用于图表的显示和交互; QCPLayer 图层:管理图层元素(QCPLayerable),所有可显示的对象都是继承自图层元素; QCPAbstractPlottable 绘图元素:包含 折线图(QCPGraph)、曲线图(QCPCurve)、柱状图(QCPBars)、QCPStatiBox(盒子图)、QCPColorMap(色谱图)、QCPFinancial(金融图); QCPAxisRect 坐标轴矩形:一个坐标轴矩形默认包含上下左右四个坐标轴,但是可以添加多个坐标轴;

2023-02-02

功能齐全迷你聊天系统

socket网络通信,以及个人自已写的一砦技巧函数; 服务端与多客户端相互通信,对话,双方聊天; 服务具体监听,接受客户端功能,还可以移出当前连接的客户端(踢人); 客户端与客户端之间互发消息,信息; 服务端可以有选择与客户端通信;

2012-10-26

center monitor

center monitor that used in hospital for monitoring the patients.

2012-10-19

进度条的实现

进度条的实现!图片背景!图片按钮 游戏场景等

2012-06-01

DX9_SDK_SOURCE

DX9_SDK精简完整版 不需要安装!直接复制到相应位置

2012-05-31

空空如也

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

TA关注的人

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