自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 介绍2-通用UDP网关

这款 UDP 数据转发工具旨在实现 UDP 数据的高效接收、存储和转发。它基于 Qt 框架开发,结合 Boost 库进行网络通信,利用 pugixml 库处理 XML 配置文件,还借助自定义的 Util 库提供基础功能支持,如文件操作、日志记录、IP 地址验证等。通过这些技术的协同工作,该工具能够稳定、可靠地完成 UDP 数据的处理任务。UDP 数据,适用于对数据传输实时性要求较高的场景。这款 UDP 数据转发工具在数据传输领域有着广泛的应用前景。它为实现高效的数据交互提供了可靠的解决方案。

2025-02-07 11:31:40 1484

原创 介绍1-设备状态监控与心跳报文系统

首次运行:首次启动设备状态监控系统时,程序会读取配置文件(位于程序同级目录下单若配置文件不存在或格式有误,可能导致设备信息加载失败。用户可根据实际需求手动修改配置文件,确保设备的 IP、Mac 地址、名称、所属组别等信息准确无误。设备状态查看:程序启动后,在主界面的监控区域,用户可以看到各个设备的当前状态,通过不同颜色和图标直观区分设备是正常运行、关机、故障还是状态不明。例如,绿色图标表示设备正常,灰色图标表示设备故障。设备控制操作。

2025-02-07 11:30:57 932

原创 自研工具类库:提升开发效率的实用之选

这套工具类库是我在开发过程中的经验积累和智慧结晶,它为解决开发中的常见问题提供了便捷的方案。在未来,我还计划进一步完善和扩展这个工具类库,比如增加网络请求封装、数据库操作封装等功能,使其能够更好地适应各种开发场景,为开发者提供更加强大的支持。希望这套工具类库也能为大家的开发工作带来便利,提高开发效率。如果大家在使用过程中有任何问题或建议,欢迎随时交流分享。

2025-02-07 11:29:39 916

原创 如何在Windows下把程序固定到指定显示屏

在多显示器的Windows工作场景下,有时候需要把某个程序固定到指定的显示器上,可是系统并没有提供简单的方法,本文将介绍使用C++代码和批处理文件实现将指定程序窗口固定到指定显示屏的方法。

2024-02-02 10:04:44 3280

原创 Lua入门

Lua 是一门扩展式程序设计语言,被设计成支持通用过程式编程,并有相关数据描述设施。同时对面向对象编程、函数式编程和数据驱动式编程也提供了良好的支持。它作为一个强大、轻量的嵌入式脚本语言,可供任何需要的程序使用。Lua 由clean C(标准 C 和 C++ 间共通的子集)实现成一个库。作为一门扩展式语言,Lua 没有 “main” 程序的概念: 它只能嵌入一个宿主程序中工作, 该宿主程序被称为被嵌入程序或者简称宿主。

2024-02-02 10:03:50 593

转载 c++实现局域网内远程开关机

win+r->gpedit.msc->本地计算机策略->Windows设置安全属性->安全设置->本地策略->用户权限分配->从【拒绝从网络访问这台计算机】中删除Guest。win+r->gpedit.msc->本地计算机策略->Windows设置安全属性->安全设置->本地策略->用户权限分配->将Guest加入【从远程系统强制关机】这两个功能的实现都需要事先对目标主机进行一些设置。我的电脑->管理->计算机管理->本地用户和组->用户->选择Guest进入属性->关闭【账户已停用】

2024-02-02 10:00:42 710

原创 cmake简单使用教程

CMake 是一个用于管理源代码构建的工具,是平台无关的中间编译工具。同一个CMake编译规则在不同系统平台构建出不同的可执行构建文件。CMake 广泛用于 C 和 C++ 语言,但它可能用于也可以构建其他语言的源代码。

2024-02-02 09:58:18 1604

原创 Json简介、RapidJson及Jsoncpp的对比使用

Json简介、RapidJson及Jsoncpp的对比使用

2023-02-19 12:31:08 1832

原创 C++ 获取系统时间

C++ 获取时间#include <iostream>#include<time.h>int main(){; time_t t = time(NULL); //需要定义tm类型的结构体,存放时间信息 struct tm *stime = localtime(&t); //月份要加上1,年份要加上1900 printf("%02d:%02d:%02d-%02d/%02d/%4d\n" ,stime->

2022-02-18 19:02:42 1148

转载 TortoiseSVN使用

安装及下载client 端下载Windows 端程序:http://tortoisesvn.net/downloads。一般而言,如果是32-bit的Windows XP 应该使用TortoiseSVN-1.4.x.xxxx-win32-svn-1.4.x.msi 这个档案。如果是64-bit 的操作系统,则应该使用TortoiseSVN-1.4.x.xxxx-x64-svn-1.4.x.msi 这个档案。执行下载回来的TortoiseSVN 安装程序,就会进行TortoiseSVN 的安装。正确安装

2022-02-16 13:40:41 875

原创 qt项目: error LNK2038 检测到“_MSC_VER”的不匹配项 值“1900”不匹配值“1800”...

error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1900”不匹配值“1800”该错误 网上通常的解释是:原因:由于你使用了vs2012,相比较vs2010以及之前的vs为更高版本,致使msvc不兼容!方法:在项目右键属性-配置属性-常规中,平台工具集选用为合适平台即可,我这里就选择 vs2010 (v100).但是选了工作集平台之后还是不行的,原因之一就是安装的qt平台及版本要与vs相匹配,如:vs2013的win32版本 对应的qt版本是 qt-opensource-w

2022-01-14 10:57:22 5845

原创 字节对齐-

文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。一、概念     对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。    二、为什么要字节对齐     需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果取它的值的话需要访问两次内存,第一次取从0x00

2022-01-14 10:56:51 1131

原创 TreeView使用委托定制输入效果

方法介绍继承QStyledItemDelegate,写一个MyDelegate类:实现里面的以下方法:createEditor: 当item激活编辑状态时,显示的内容。这里创建一个QComboBoxsetEditorData:用以初始化createEditor里创建的控件内容。这里直接把当前item的text设置为QComboBox选中项。setModelData:应用编辑后,修改model的data。这里把QComboBox的当前选中项文本设置为item的显示文本。updateEditorG

2022-01-14 10:54:47 352

原创 qt TableView 用法总结

转载自 QTableView用法总结 - justwake - 博客园 (cnblogs.com)QTableView常用于实现数据的表格显示。下面我们如何按步骤实现学生信息表格:添加表头 //准备数据模型 QStandardItemModel *student_model = new QStandardItemModel(); student_model->setHorizontalHeaderItem(0, new QStandardItem(QObject::tr("Nam

2022-01-14 10:54:16 4271

原创 vs第三方库的引用

右键项目–>属性–>C/C++选项–>常规–>附加包含目录:​ 你的boost路径/boost/include[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TF9bZVCN-1642128639020)(https://cdn.jsdelivr.net/gh/llz-github/image/img1/20210719165756.png)]链接器–>常规–>附加库目录:​ 你的boost路径/boost/lib8..

2022-01-14 10:53:15 424

原创 读写文件(txt & xml)

txt读取#include <fstream>#include <sstream>std::string FileName = "test.txt";std::ifstream inin.open(FileName, std::ios::in);if(!in.fail()){ //按空格划分字符串 std::string strLine; istringstream in(str); vector<string> v;

2022-01-14 10:49:53 224

原创 单例模式实现

视频参考链接单例模式:在一个系统中一个类的对象实例唯一存在特点:1.类构造器私有2.持有自己类型的属性3.对外提供获取实例的静态方法代码实现:#pragma onceclass MyInstance{public: //3.对外提供获取实例的静态方法 static MyInstance * GetMyInstance() { static MyInstance Instance; return &Instance;

2022-01-14 10:48:07 151

转载 c++基本类型之间的转换

常用的转换方法:流转换STL标准函数库中函数转换流转换流转换主要是用到了库中的stringstream类。通过stringstream可以完成基本类型间的转换, 1 #include<sstream> 2 3 using namespace std; 4 5 template<typename out_type, typename in_value> 6 7 out_type convert(const in_value & t){ 8

2021-07-30 11:33:24 174

原创 1.时间复杂度和空间复杂度

算法的优劣主要从时间和空间两方面进行分析:时间:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。空间:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。时间复杂度:常见的七种时间复杂度O(1):Constant Complexity 常数复杂度O(log n):Logarithmic Complexity 对数复杂度O(n):Linear Complexity 线性时间复杂度O(n^2):N square Complexity 平方O(n^3):.

2021-07-30 11:31:26 178

原创 7.Android的网络编程-Volley和Gson框架

HTTP协议简介什么是HTTP协议?• HTTP(Hyper Text Transfer Protocol)协议即超文本传输协议,它规定了浏览器和万维网服务器之间互相通信的规则。• HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。日常生活中,大多数人遇到了问题都会使用手机进行百度

2021-07-28 17:30:36 433

原创 6.Android高级控件ViewPager和Fragment

ViewPager的使用ViewPager简介它是Android 3.0后引入的一个UI控件(视图滑动切换工具)通过手势滑动可以完成View的切换,一般是用来做APP的引导页或者实现图片轮播。ViewPager的使用要点ViewPager是v4包中的一个类,继承自ViewGroup,是一个容器,可以在其中添加其他的view类。ViewPager布局管理器允许翻转带数据的页面,可以通过实现PagerAdapter来显示视图。ViewPager类需要一个PagerAdapter适配器类给它提

2021-07-28 17:30:22 253

原创 5.Android高级组件-ListView和RecyclerView

ListView简介ListView介绍在Android开发中,ListView是一个比较常用的控件。它以列表的形式展示具体数据内容,并且能够根据数据的长度自适应屏幕显示。ListView控件的使用新建Android工程。在activity_main.xml中加入ListView控件 <ListView android:id="@+id/lv" android:layout_width="match_parent"

2021-07-28 17:30:11 396

原创 4.Android组件Activity

初识Activity关于Activity可以与用户交互的一个单独的屏幕。例如:计算器、拨号屏幕等。Activity用来管理需要显示的各种组件。例如,按钮、输入框、文本框等等。一个应用程序一般由多个Activity构成。Activity具有生命周期。创建Activity创建Activity的方法:创建一个继承Activity类或Activity派生类的子类实现回调方法onCreadte(),并调用setContentView(int Layout

2021-07-28 17:29:52 464

原创 3.Android常用布局和控件的应用

FrameLayout布局的应用FrameLayout布局这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;两个属性:android:foreground:*设置改帧布局容器的前景图像android:foregroundGravity:设置前景图像显示的位置FrameLayout布局功能子元素逐个重叠放入栈中最后添加的子元素显示在最上面Toast控件的应用Toast控

2021-07-28 17:29:24 270

原创 2.Android常用布局和控件的应用

LinearLayout布局的应用什么是布局定义 UI 的可视化结构通过布局参数(LayoutParams)定义子元素的尺寸、位置布局是不可见的容器(ViewGroup)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vcDWMK9J-1627188771589)(https://cdn.jsdelivr.net/gh/llz-github/image/img1/20210115171203.png)]LinearLayout布局的使用LinearLayou

2021-07-28 17:29:09 201

原创 1. 第一个Android程序

创建 Android 项目本节课向您介绍如何使用 Android Studio 创建新的 Android 项目,并介绍该项目中的一些文件。要创建新的 Android 项目,请按以下步骤操作:安装最新版 Android Studio。在 Welcome to Android Studio 窗口中,点击 Start a new Android Studio project。图 1. Android Studio 欢迎屏幕如果您已打开一个项目,请依次选择 File > New &gt

2021-07-28 17:28:51 966

转载 常见数据结构

转载自https://blog.youkuaiyun.com/yeyazhishang/article/details/82353846数据结构分类数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示:每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。数组数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。例

2021-07-28 17:25:40 139

原创 打印图形练习

题目:打印图形13 24 5 610 9 8 7题解:思路:首先利用双重循环打印斜三角形框架。将数字按位置顺序存放。将偶数列的数据逆序排列,打印。注意:这里需要注意的有两点:如何指定数组中某个位置的逆序输出。vector的升序排序是sort(a.begin(),a.end()),降序排序为sort(a.rbegin(),a.rend()).这里需要注意一下:c.begin() 返回一个迭代器,它指向容器c的第一个元素c.end() 返回一个迭代器,

2021-07-28 17:25:20 162

原创 OJ在线编程常见输入输出练习场

题目链接: https://ac.nowcoder.com/acm/contest/5646A A+B(1)题目描述计算a+b输入描述:输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。输出描述:输出a+b的结果示例1输入1 510 20输出630代码#include<bits/stdc++.h>using namespace std;int main(){ int a,b; while(

2021-07-28 17:24:50 495

原创 最小栈

原题链接:https://leetcode-cn.com/problems/min-stack/submissions/题目:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top

2021-07-26 09:21:13 133

原创 柱状图中最大的矩形

题目给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10题解对于一个高度,如果能得到向左和向右的边界那么就能对每个高度求一次面积遍历所有高度,即可得出最大面积使用单调栈,在出栈操作时得到前后边界

2021-07-26 09:20:55 255

原创 爬楼梯

原题链接:https://leetcode-cn.com/problems/climbing-stairs假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例1 :输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶

2021-07-26 09:20:40 94

原创 删除排序数组中的重复项

原题链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数

2021-07-26 09:20:19 114

原创 有效的括号

原题链接:https://leetcode-cn.com/problems/valid-parentheses/题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例:示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false

2021-07-26 09:19:59 123

原创 盛最多水的容器

原题链接:https://leetcode-cn.com/problems/container-with-most-water/题目给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在

2021-07-26 09:19:42 119

原创 费解的开关

你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再改变它正中间的灯后状态将变成:011111100

2021-07-26 09:19:15 165

原创 递归实现指数型枚举

从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3题解:暴力枚举整体思路是准备出一个数组,将每个位置都遍历一次,选中的置为1,未重的置为-1,最后将其输出即可。

2021-07-26 09:18:59 215

原创 递归实现排列型枚举

把 1~nn 这 nn 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数n。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤91≤n≤9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1题解思路:暴力枚举每个位置上的所有数字的可能,前面位置已经时用过的数字不能重复使用,定义used数组来判断是

2021-07-26 09:18:23 148

转载 三次握手四次挥手详解

相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。因此在这里详细解释一下这两个过程。第一部分:TCP三次握手及四次挥手TCP三次握手所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需

2021-07-26 09:17:48 2536

转载 状态码及其含义

当访问服务器时,有时会返回状态码,它的意思如下:以2开头的状态码2开头(请求成功) 表示成功处理了请求的状态代码200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。201 (已创建) 请求成功并且服务器创建了新的资源。202 (已接收) 服务器已接受请求,但尚未处理。203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。204 (无内容) 服务器成功处理了请求,但没有返回任何内容。205 (重置内容) 服务器成功处理了请求,但没有返回任何内

2021-07-25 12:15:27 1099

空空如也

空空如也

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

TA关注的人

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