自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hanxiaoyong_的博客

业精于勤

  • 博客(253)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 单例模式C++实现和观察者模式C++实现

1、单例模式介绍 2、单例代码C++实现 3、观察者模式介绍 4、观察者模式C++代码实现单例实现3种方式(1)懒汉式。(使用时进行实例化。存在线程安全问题)(2)静态局部变量。(使用时进行实例化。不存在线程安全问题)(3)饿汉式。(单例类创建的时候进行实例化。不存在线程安全问题)。static静态成员变量,static类成员变量,static静态成员函数介绍和用法。

2023-06-04 18:26:50 1018

原创 设计模式之-模板方法模式C++实现与C++模板template用法

设计模式之-模板方法模式C++实现与C++模板使用。模板方法模式使用比较常见,也比较简单,模板方法模式是属于设计模式中的行为设计模式。行为设计模式是关注对象的行为或者交互方面的内容,主要涉及算法和对象之间的职责分配。

2023-06-04 10:42:06 642

原创 简单工厂模式与工厂方法模式的C++代码实现

创建型模型设计介绍1、简单工厂模式C++代码实现2、工厂方法模式C++代码实现3、简单工厂模式与工厂方法模式的简单比较

2023-05-31 23:27:00 327

原创 C++设计模式介绍、分类与设计模式原则

一、设计模式定义二、设计模式的优点三、设计模式缺点四、设计模式中的抽象思维五、抽象的方法六、设计模式应用场景七、设计模式分类八、设计模式八大原则附加知识(1)C++面向对象三种访问修饰符(2)父类析构函数必须为虚函数(3)override关键字使用(4)final关键字使用(5)父类对象可以与子类对象相互转化吗(6)虚函数、虚函数表介绍

2023-05-24 21:48:09 2982 1

原创 C++线程池介绍和C++代码实现

C++线程池的介绍和使用场景,C++线程池demo实现。

2023-05-24 15:40:46 1880

原创 C++ 使用多线程间通信方式模拟消费者生产者模式demo

【代码】C++消费者生产者模式简单demo。

2023-05-24 14:22:55 235

原创 C++多线程中共享变量同步问题

多线程共享变量同步1、互斥量(1)std::mutex(2)std::recursive_mutex(3)std::timed_mutex2、锁管理器(1)std::lock_guardlk(2)std::unique_locklk(3)std::unique_lock第二个参数使用3、条件变量(1)std::condition_variable a>wait()函数 b>notify_one()函数 c>notify_all()函数4、原子操作

2023-05-13 20:20:44 4149 1

原创 linux代码检测工具valgrind之内存检测memcheck

valgrind检测工具的安装与内存泄漏memchek检测使用介绍。“definitely lost”必须需要修复。间接丢失“indirectly lost“,如果修复了绝对丢失,则间接丢失应该消失。

2023-04-19 23:02:05 1079

原创 opengl、opengl es、webgl介绍与opengl开发入门

opengl 、opengl es、webGL介绍; opengl 封装库介绍;glfw编译安装;oepngl开发入门。

2023-03-05 17:51:20 1102

原创 windows/linux下Qt可执行程序打包,linux桌面双击运行程序sh脚本

windows/linux下Qt可执行程序打包。windows下Qt打包工具windeployqt用法。linux下Qt依赖文件打包,linux下桌面双击运行程序脚本编写。windows下Qt的可执行文件打包简单的来说就是利用Qt自带依赖的打包工具windeployqt进行打包,该工具存在Qt安装目录下。

2023-02-12 18:53:08 3001 1

原创 C++工程的CMakeLists.txt文件编写

C++工程的CMakeLists.txt文件的demo编写。CMakeLists的介绍和简单用法

2023-01-29 22:49:38 2239 1

原创 C++中拷贝构造函数、拷贝赋值运算符、析构函数、移动构造函数、移动赋值运算符(三/五法则)

拷贝构造函数、拷贝赋值运算符、析构函数、移动构造函数、移动赋值运算符用法拷贝构造函数、拷贝赋值运算符、析构函数、移动构造函数、移动赋值运算符介绍什么时候定义拷贝构造函数和拷贝赋值运算符。

2023-01-29 21:02:53 2627

原创 C++中函数对象模板function<T>、通用函数适配器std::bind和lambda

C++function用法、C++ std::bind用法、C++ lambda用法、using的使用、std::placeholders::_1用法

2023-01-27 19:54:36 1586

原创 docker与k8s的简介、安装与用法

docker介绍、安装与用法,docker与虚拟机区别,docker升级之k8s,k8s调试方法之k9s;docker制作镜像流程。docker与主机之间拷贝文件。docker使用显卡。docker挂载主机目录。 删除docker镜像中文件,重新打包镜像,新打包docker镜像内存没有减少。

2022-11-22 21:44:31 3179

原创 ubuntu20.04的 ROS安装、入门与ROS的CMake配置

ubuntu20.04的 ROS安装与入门简单介绍。gpg: no valid OpenPGP data found.VSCode使用CMakeLists配置ROS环境

2022-11-19 16:35:11 676

原创 linux下使用qmake编译运行Qt工程

使用Qtcreator的IDE工具点击对应生成按键可生成目标文件。同样使用qmake命令,通过生成Makefile也可以生成可执行文件。注意:上面步骤需要注意是,若编译有问题时,可以make clean一下,删除上传的产物,删除Makefile、.qmake.stash文件,再重新编译。进行专案开发的构建过程的工具程式,Qt附带的工具之一 ,详见。1、在.pro文件下执行qmake生成Makefile。介绍qmake编译的工程的博文也可参考。2、执行make -j8 //并行编译。

2022-09-21 07:30:00 4323

原创 ubuntu下安装Qt和添加Qt快捷启动方式

ubuntu下安装Qt和Qt添加快捷启动方式。可以点击右键将快捷方式添加到左边工具栏的Favorites.Qt下载之后就可以安装了,安装步骤可参考下面链接。若要双击Qt.sh运行,可以在网上查找对应的方式。也可参考网上其他安装步骤链接。

2022-09-17 14:40:31 4152

原创 linux下profile、bashrc区别和PATH、LIBRARY_PATH、LD_LIBRARY_PATH区别

(1)cd ~:跳转到当前用户目录,如果当前用户是usr账号,则跳转到home路径的usr下,如果当前是root用户,则跳转到root用户下。Linux是一个多用户操作系统,上面的几个文件设置的环境变量对用户应用范围不同,linux下的配置文件是放在/etc/目录下的。所在路径:(1)系统级:/etc/bash.bashrc,修改的环境变量对所有用户起作用。1、profile:所在路径:/etc/profile,修改的环境变量是对所有用户起作用。(2)cd /:跳转到根目录root下。

2022-09-12 23:07:41 575

原创 win10+ubuntu双系统下载ubuntu方法(卸载系统不完整会进入grub)

win10+ubuntu双系统下载ubuntu系统方法;卸载双系统,启动时出现grub;

2022-09-10 09:19:46 1239

原创 Linux下gdb调试工具介绍和gdb常用调试方法介绍

1、gdb介绍 2、gdb用法介绍 (1)生成带有调试信息的可运行程序a>判断可运行程序是否带有调试信息?b>判断可执行文件是否带有调试信息的两种方法:(2)运行调试程序:(gdb)run、start区别附加知识:启动带参可执行程序(3)源码查看:(gdb)list(4)运行参数查看show(5)断点设置设置断点、设置条件断点、查看断点、删除断点、禁用断点、运行某个断点(6)堆栈 a>堆栈查看命令b>栈帧(stack frame)介绍 c>函数调用过程中栈区变化d>栈增长方向

2022-08-26 18:04:13 7510

原创 C++ STL中vector、list、deque顺序容器使用介绍

容器分为顺序容器和关联容器,顺序容器提供了控制元素存储和访问顺序的能力,这种顺序不依赖于元素的值,而是与元素加入时的位置相对应。

2022-08-19 12:50:34 1177

原创 C++中大小端存储模式介绍和检测demo

大端模式:是指数据的高字节保存在内存的低地址中。小端模式:是指数据的高字节保存在内存的高地址中。

2022-08-12 22:47:52 698

原创 VS2017番茄助手Visual Assist下载和Everything搜索工具下载

Everything搜索工具下载和VS2017番茄助手Visual Assist下载

2022-08-07 13:09:54 1275

原创 内存管理、系统内存分区和C++内存分区简述

简单的来说,内核态操作权限高,用户态的操作权限低。用户态可以通过系统的API函数来进行操作硬件设备和内存。用户态和内核态的机制提供了操作系统的稳定性和可用性。电脑的内存资源有限,系统中运行的进程是无限的,所以说,电脑不能运行太多的进程,如果运行进程数量过多,则会出现电。,当进程运行在用户态时,进程使用的时用户态的空间;当运行在在内核态时,使用的时内核态空间。每个进程的空间地址分配机制都是已有的,每个进程在。,甚至由于资源有限,新的进程不能正常运行。1、为什么需要管理内存呢?内存管理就是系统管理。......

2022-07-18 21:00:18 507 1

原创 使用bat命令一键启动常用浏览器

我们常常需要打开特定的网址,比如翻译网页,或者其他网页,需要多次跳转后才可以跳转到目标网页。写成bat命令后,就可以一键启动。可以再.bat文件中写入命令,然后双击运行,下面举了2个简单例子。1、启动百度@echo offcd C:\Program Files (x86)\Microsoft\Edge\Applicationstart msedge.exe https://www.baidu.com/2、启动菜鸟解析json网页@echo off#浏览器exe的地址cd C:\Program F

2022-07-04 21:03:36 5342

原创 C++中list的自定义结构体数据类型排序

list中自定义数据排序

2022-07-03 12:32:07 1325

原创 C++/Qt获取屏幕尺寸和放大比例

C++/Qt获取屏幕尺寸和放大比例

2022-06-23 08:00:00 4050 2

原创 C++工程的makefile文件编写demo

makefile文件的编写demo,在linux下运行

2022-05-31 23:31:06 648 1

原创 linux下g++编译C++工程demo与g++命令简述

linux下的g++编译C++工程的简单demo,编译可执行文件,静态库,动态库

2022-05-30 23:21:12 4357

原创 VMware软件安装、虚拟机ubuntu20.04安装、扩容

虚拟机VMware软件安装、虚拟机VMware安装ubuntu,虚拟机VMware设置共享文件夹失败虚拟机ubuntu和windows之间复制文件失败。虚拟机扩容。

2022-05-17 22:46:41 780

原创 C++中指针数组大小的判断

_msize() 返回 new 分配内存的大小_hongye_05的博客-CSDN博客__msizehttps://www.jianshu.com/p/abc8824c4f9d

2022-05-17 22:04:54 812

原创 linux下安装yum步骤

一、安装yum前下介绍以下知识。1、yum介绍Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。2、Fedora介绍Fedora Linux(第七版以前为Fedora Core)是由Fedora项目社区开发、红帽公司赞助,目标是创建一套新颖、多功

2022-05-14 18:29:49 166929 25

原创 C++服务器连接客户端流程

基于C++,介绍服务器与客户端连接过程中的操作流程,并列出关键函数。可以参考socket的常用函数和demo相结合进行阅读。

2022-05-11 23:07:33 709

原创 socket常用函数总结

已下函数根据服务器启动流程介绍的socket相关函数。1、函数MAKEWORD函数:WORD MAKEDORD(BYTE bLow, BYTE bHigh)描述:创建一个无符号16位整数。参数:(1)bLow: 指定新变量的低字节序(2)bHigh: 指定变量的高字节序返回值:一个无符号16位整形数。2、WSAStartup函数:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData)描述:Windos

2022-05-11 09:00:00 3125

原创 QTableWidget 设置翻页和滑动滚动条时页数自动更新

直接上代码.cpp#include "QtableWidget.h"QtableWidget::QtableWidget(QWidget *parent) : QMainWindow(parent){ ui.setupUi(this); ui.tableWidget->setShowGrid(true); ui.tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); ui.table

2022-05-06 22:39:01 2695

原创 Notepad++官网下载

Notepad++ - Download (softonic.com)

2022-05-03 13:30:41 15913

原创 多语言id1033,2052

详见链接:https://www.csdn.net/tags/OtDagg1sNjA3NzgtYmxvZwO0O0OO0O0O.html

2022-04-14 16:51:00 580

原创 NSIS打包工具用法介绍与NSIS相关软件下载

1、介绍NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的。NSIS 的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。2、特点1、开销小,一个完整功能的安装程序仅需要 34k 的额外开销。2、支持大多数 Windows 平台,包括:Windows 10

2022-04-13 15:37:40 3025

原创 实现ping功能

C++代码实现网络Ping功能_卢奕冰2017的博客-CSDN博客_c++ pinghttps://www.iteye.com/blog/jacky-dai-2369807

2022-04-06 20:25:07 747

原创 VS2017的内存分析

VS环境中进行内存泄漏的检测 - 星辰风 - 博客园

2022-03-18 20:12:25 1180

CMake中一个工程依赖另一个工程生成的动态库demo

project1生成动态库,project2工程中引用porject1中生成的动态库。

2023-10-29

linux下tcp的服务端和客户端代码,一个服务器对应多个客户端 (多线程和select方式创建服务端)

linux下tcp的服务端和客户端代码,一个服务器对应多个客户端。 服务端程序对应多个客户端的创建方式有两种,如下: 1、每一个客户端创建一个线程。 2、使用IO多路复用的select方式来应对多个客户端。 程序启动命令如下: 服务器启动命令:$ ./server 37777 客户端启动命令:$ ./client 127.0.0.1 37777

2023-08-30

OpenglES离屏渲染 C++ demo

该资源使用OpenglES绘制了一个三角形,然后利用帧缓冲将数据读取到buffer,最后使用opencv将数据保存为jpg图片。代码在linux下编写,使用CMake编译。

2023-03-18

opengl加载obj模型

加载obj模型

2023-03-12

VSCode中配置ros环境

在CMakelists中配置最ros环境的demo,注释中带#ROS的为添加的配置,其实只有2部分: (1)查找头文件和库。 (2)添加ROS的静态库

2022-12-07

VScode配置C++工程

VSCode中配置C++,涉及三个文件c_cpp_properties.json,launch.json,tasks.json

2022-12-07

CMakeList配置文件介绍

CMakeList配置文件介绍:里面有3种配置方式, 1:在当前目录下,编译本目录的CMakeLists.txt,生成Makefile和其他文件,执行 (1)$cmake . (2) $make (3)$./main 2:将编译输出文件与源文件放到不同目录中,执行命令: $mkdir build $cd build $cmake .. $make $./main 3:工程多个CMakelists,makelist编译嵌套

2022-12-07

VS2017番茄助手Visual Assist 10.9 Setup2270下载

支持VS2017、2015、2013、2010、2008版本。 步骤: 1、若之前VS2017上已安装番茄助手,请卸载,卸载步骤:打开VS2017->工具->扩展和更新->卸载。点击后,关闭VS2017软件,卸载完成。 2、双击下载的VA_X_Setup2270.exe,安装完成。 3、用VA_X.dll替换电脑中的VA_X.dll文件。 注:VS更高版本是否支持,没有试过。

2022-08-07

基于TCP的服务端和客户端软件

tcp的服务端和客户端,待完善

2022-05-06

RegisterTable.rar

demo为VS2017程序,C++往注册表中写数据读数据,windows程序。

2021-10-05

QtSocket.rar

Qt Socket存在不能一次接收到完整数据的问题,需多次拼接数据;若是复杂的场景,需要较好的处理数据方法,才可接收到完整的数据。本方法可以较好的提取出完整的数据。

2021-05-06

EasyBCD.rar

在windows7系统下,可以使用EasyBCD软件进行引导,进入Ubuntu系统。此资源无需安装EasyBCD,直接使用。

2019-06-30

MFC启动画面(VS2010,无对话框边框,只显示启动图片)

C++,无对话框边框,只显示启动图片,真正的启动动画,值得参考。

2017-08-15

MFC基于对话框的启动画面(只显示启动图片无对话框边框)

本程序使用利用延时关闭启动画面,启动画面没有边框,做到只显示启动图片,真正的启动画面。

2017-08-14

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

TA关注的人

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