自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cchangcs

公众号:hw_cchang | GitHub: https://github.com/cchangcs | Email:cchang@whu.edu.cn

  • 博客(377)
  • 资源 (5)
  • 收藏
  • 关注

原创 Linux平台基于C++实现简易HTML服务器

在实现HTML服务器时,主要分为三步:接收客户端的http请求 解析http请求 响应http请求零、HTTP请求和相应1、HTTP请求1)请求行请求方式:POST、GET请求的资源:/DemoEE/form.html协议版本:HTTP/1.1(一般都是)HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开。HTTP/1.1,发送请求,创建一次连接,获得多个web资源,保持连接。2)请求头请求头是客户端发送给服务器端的一些信息,使用键.

2020-08-16 17:07:50 617

原创 LeetCode C++刷题81-84题题解

81、搜索旋转排序数组II题目:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,0,1,2,2,5,6]可能变为[2,5,6,0,0,1,2])。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回true,否则返回false。示例1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例2:输入: nums = [2,5,6,0,0,1,2], target = 3输出: fals...

2020-08-15 20:13:36 242

原创 LeetCode C++刷题 77-80题题解

77、组合题目:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/combinations著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题解:回溯代码:...

2020-08-15 20:08:48 287

原创 Linux平台C++多线程编程

1、简介 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。  使用多线程的理由之一是和进程相比,它

2020-08-15 15:14:40 289

原创 LeetCode C++刷题 73-76题题解

73、矩阵置零题目:给定一个m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例1:输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]示例2:输入: [ [0,1,2,0], [3,4,5,2], [1,3,1,5]]输出: [ [0,0,0,0], [0,4,5,0], [0,3,1,0]...

2020-08-08 21:39:35 284

原创 LeetCode C++刷题 69-72题题解

69、x的平方根题目:实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sqrtx著作权归领扣网络所有。...

2020-08-08 21:35:48 269

原创 LeetCode C++刷题 65-68题题解

65、有效数字题目:验证给定的字符串是否可以解释为十进制数字。例如:"0"=>true" 0.1 "=>true"abc"=>false"1 a"=>false"2e10"=>true" -90e3"=>true" 1e"=>false"e3"=>false" 6e-1"=>true" 99e2.5"=>false"53.5e93"=>true" --...

2020-08-08 21:30:48 321

原创 LeetCode C++刷题 61-64题题解

61、旋转链表题目:给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。示例1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例2:输入: 0-...

2020-08-08 21:22:25 441

原创 LeetCode C++刷题 57-60题题解

57、插入区间题目:给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例1:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9]]示例2:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输出:[[1,...

2020-08-08 21:11:57 256

原创 LeetCode C++刷题 53-56题题解

53、最大子序和题目:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray著作权归领...

2020-08-01 18:32:57 251

原创 LeetCode C++刷题 49-52题题解

49、字母异位分词题目:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/gr...

2020-08-01 18:26:40 253

原创 Linux 平台C++连接MySQL进行数据查询

本文主要介绍在Linux平台下,如何通过C++连接MySQL数据库,进行数据的增删改查等操作。一、安装配置MySQL(1)安装mysql在terminal中运行如下命令进行安装:sudo apt updatesudo apt install mysql-serversudo apt install mysql-clientsudo apt install libmysqlclient-dev测试是否安装成功:sudo netstat -tap | grep mysql

2020-08-01 17:42:04 476

原创 Linux平台基于C++ socket实现UDP网络通信

本文主要介绍在Linux平台基于C++ socket实现UDP网络通信。0初步构思初步的构思是在Linux平台实现一个客户端和一个服务端,实现客户端发送消息,服务端接收消息。1、通信流程2、服务端代码#include<iostream>#include<conio.h> //kbhit()所在的库#include<cstring>#include<unistd.h>#include<sys/types.h>#in

2020-08-01 15:06:50 1934

原创 Linux平台基于C++ socket实现TCP 网络通信

本文主要介绍在Linux平台基于C++ socket实现TCP网络通信。0初步构思初步的构思是在Linux平台实现一个客户端和一个服务端,首先客户端和服务端建立TCP连接,然后客户端和服务端可以互发消息。1、通信流程2、服务端代码#include<iostream>#include<conio.h> //kbhit()所在的库#include<cstring>#include<unistd.h>#include<sys/

2020-08-01 14:05:48 6692 2

原创 LeetCode C++刷题 45-48题题解

45、跳跃游戏II题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。说明:假设你总是可以到达数组的最后一个位置。来源:力扣(LeetCode)链接:https://leet...

2020-07-26 16:31:19 229

原创 LeetCode C++刷题 41-44题题解

41、缺失的第一个正数题目:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-missing-positive...

2020-07-26 16:27:30 281

原创 LeetCode C++刷题 37-40题题解

37、解数独题目:编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。空白格用'.'表示。一个数独。答案被标成红色。Note:给定的数独序列只包含数字1-9和字符'.'。你可以假设给定的数独只有唯一解。给定数独永远是9x9形式的。来源:力扣(LeetCode)链接:https:...

2020-07-26 16:21:42 215

原创 LeetCode C++刷题 33-36题题解

33、搜索旋转数组题目:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例2:输入: nums = [4...

2020-07-26 16:17:34 268

原创 LeetCode C++刷题 29-32题题解

29、两数相除题目:给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数dividend除以除数divisor得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3....

2020-07-18 21:22:16 443

原创 LeetCode C++刷题 25-28题题解

25、K个一组翻转链表题目:给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当k= 2 时,应当返回: 2->1->4->3->5当k= 3 时,应当返回: 3->2->1->4->5说明:你的算法只能...

2020-07-18 21:13:37 243

原创 LeetCode C++刷题 21-24题题解

21、合并两个有序链表题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。..

2020-07-18 19:30:56 223

原创 LeetCode C++刷题 17-20题题解

17、电话号码的字母组合题目:给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems..

2020-07-18 19:23:44 388

原创 LeetCode C++刷题 13-16题题解

13、罗马数字转整数题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为...

2020-07-11 19:23:48 295

原创 LeetCode C++刷题 9-12题题解

9、回文数题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro.

2020-07-11 19:17:27 255

原创 LeetCode C++刷题 5-8题题解

5、最长回文子串题目:给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"题解:动态规划代码:class Solution {public: string longestPalindrome(string s) { int n = s.size(); ...

2020-07-11 19:04:09 320

原创 LeetCode C++刷题 1-4题题解

1、两数之和题目:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems...

2020-06-29 12:37:12 360

原创 Java调用BPEL工作流方法

在创建完BPEL工作流后,有时需要通过代码执行BPEL工作流,本文主要介绍如何使用Java编程语言调用BPEL工作流。一、创建并部署BPEL工作流项目1、创建BPEL工程启动Eclipse,点击File->New->Other,然后选择BPEL 2.0 ->BEPL Project,在弹出的对话框中输入项目名Stream_bpel,结果如图1.1。图1....

2020-04-25 17:27:58 917

原创 基于IKCM实现C#代码调用Java方法

本文主要介绍如何使用C#语言对Java方法进行调用。0、准备事项 由于能够成功实现将Java导出的Jar包转换为C#可以调用的DLL与Java版本和IKVM工具版本有很大关系,只有当Java版本与IKVM版本相适配时,才可成功。 在经过多次尝试后,选择的Java和IKVM版本如下: Java:Java 1.8.0 ...

2020-04-25 17:27:19 653

原创 将ContextCapture生成的点云数据转化为PCL可以处理的数据格式

示例代码:file = open('point2.txt')# 读取所需数据val_list = file.readlines()list_x = []list_y = []list_z = []list_rgb = []for string in val_list: str2 = string.split(' ') list_x.append(float(s...

2020-04-25 17:25:52 1269

原创 C# System.Diagnostics.Process打开和关闭exe应用程序

目录一、打开应用程序二、关闭应用程序本文主要介绍在C#中使用System.Diagnostics.Process打开和关闭第三方exe外部应用程序。一、打开应用程序要求:根据需要打开的应用程序所在路径修改FileName后的exe程序路径。Process m_Process = new Process();m_Process.StartInfo.FileName = @...

2019-12-23 20:47:53 9730

原创 解决C#错误:System.StackOverflowException

目录一、错误描述二、问题原因三、解决方法一、错误描述在运行C#项目的过程中,在点击启动按钮后,一直没有出现项目窗口,占用内存逐渐增大,最终出现如下错误:二、问题原因在网上搜了一下产生上述错误的原因,是递归调用引起的,然而重新看了一遍代码,没有发现递归调用的地方,最后发觉,项目的主窗口Form1中声明并调用了Form3,并且又在Form3中声明并调用了Form1,由于...

2019-12-23 20:03:23 21893

原创 cv2批量修改图片大小

目录一、介绍二、使用说明一、介绍最近做项目的过程中,需要将几百张图片修改为固定的大小,手动修改图片大小特别耗时且低效,因此使用Python的cv2模块写了一个批量修改的代码:import cv2i = 1nums = 1000while i < nums: # 读取图片 img = cv2.imread(".\\uav\\" + str(i) +...

2019-12-20 14:35:29 1951

原创 C#设置隔一定时间间隔自动更新Form(窗体)内容

目录一、问题描述二、解决方案三、完整代码一、问题描述这段时间在做通过C#顺序展示图片时,出现了问题,界面会卡住不动,直到运行结束才会显示最后一张图片。其中,form.Show()用于显示图片,form.setImgIndex(index)用于更新图片,form.Show();int index = 2;while (index < 264){ Th...

2019-12-18 21:48:00 2114

原创 C#Form实现安全重复打开关闭的方法

目录一、Form窗口端二、调用端三、写在最后在C#中,有时需要对某个窗口Form重复打开关闭,这时就会涉及一些问题:若Form窗口已经显示出来,则无需打开新的窗口 若Form窗口被销毁,则需要重新生成一个窗口并显示下面分成Form窗口端和调用端进行介绍:一、Form窗口端1、双击箭头处,实现FormClosed事件。2、修改Form10.cs代码为如下所示:...

2019-12-18 10:21:30 1468

原创 C# TreeView根据设置的Name属性获取Node

本文主要介绍在C#中,对TreeView根据设置的Name属性获取Node,并对Node进行操作。TreeNode[] nodes = treeView2.Nodes.Find("nodeName", true);然后即可通过nodes[0]对该节点进行操作。注:如果所需要获取的节点没有子节点,也需要将searchAllChildren属性设置为true,然后所得到的第一个节点即为所...

2019-12-17 22:06:36 2235 1

原创 C# 在一个From窗体中调用另一个窗体中的控件

本文主要介绍如何实现在一个窗体中调用另一个窗体中的控件。如:实现在Form2中调用Form1中的checkBox1,下面是实现步骤:1、在Form1窗体中实现Form2窗体对象form2,并设置form2对象的Owner为Form1。Form2 form2 = new Form2();form2.Owner = this;2、在Form2中实现Form1的窗体对象,调用chec...

2019-12-17 21:12:38 8086

原创 C#设置TreeView节点为CheckBox

本文主要介绍在C#中设置TreeView节点为CheckBox,方法特别简单,只需在Form的构造函数中加入如下代码即可:treeView1.CheckBoxes = true;注: 花了一些时间找到这个方法,方法特别简单,本来不值得写一篇博客,但是可能也有人遇到同样的问题,希望能够帮到有需要的人。...

2019-12-16 15:54:32 1110

原创 BPEL变量(Variables)赋值

目录一、创建变量二、变量赋值本文主要介绍如何在BPEL工作流中,创建变量(Variables)并进行变量赋值。一、创建变量1、点击 Variables框中的 “+”号创建变量,并设置变量的名称。2、进入 “Properties”窗口,设置变量类型。点击Browse在 Matches 中选择变量类型,并点击 确定二、变量赋值1、在BPEL工作...

2019-12-16 14:11:48 302

原创 OSGEarth对绘制的直线进行显示与隐藏

目录一、声明全局变量二、实现直线的显示三、实现直线的隐藏本文主要介绍如何通过复选框等事件实现OSGEarth中所绘制直线的显示与隐藏。一、声明全局变量将如下代码放在类属性中,或声明为全局变量。osgEarth::Annotation::FeatureNode* m_pStippleFeatureNode;二、实现直线的显示通过下面的代码进行直线的绘制,并将绘制...

2019-12-14 15:58:47 2132 4

原创 OSGEarth绘制随模型位置变化而动态移动的线段

目录一、编写Callback二、初始化并绑定Callback本文主要介绍在OSGEarth中绘制随模型位置变化而动态移动的线段,即两个三维模型通过线段进行连接,在模型移动的过程中,连接的线段跟着模型做相应的位移。一、编写Callback#pragma onceclass UpdateLink :public osg::NodeCallback{public: osg:...

2019-12-13 15:17:25 3711 1

垃圾分类数据集及代码

资源说明: 数据集主要包括6类图片:硬纸板、纸、塑料瓶、玻璃瓶、铜制品、不可回收垃圾 代码运行说明: 1、 安装运行项目所需的python模块,包括tensorflow | numpy | keras | cv2 2、 train.py用于训练垃圾分类模型,由于训练的数据量过于庞大,因此不一并上传 3、 predict.py用于预测垃圾的类别,首先运行predict.py,然后输入需要预测的文件路径,即可得到结果。

2020-11-11

Naruto.zip

fbx模型,带奔跑和其他十多个动作。相关博客(osg读取fbx模型并播放动画(附代码和模型)):https://blog.csdn.net/github_39611196/article/details/90267276。

2019-05-16

TensorFlow transfer learning权值文件、数据集

博客:TensorFlow 迁移学习(transfering learning)[TensorFlow 迁移学习(transfering learning)]的数据集和权值文件,由于文件有700多M,因此给出了存入了百度网盘,大家可以下载后,从ReadMe文件中获取下载链接和提取码。(文件链接长期有效,失效了可给我发私信)

2019-04-14

pose_deploy.prototxt

手势识别中所用到的proto file,用于基于OpenCV实现对手势的识别。 具体代码可参考:https://cchang.blog.csdn.net/article/details/87979328

2019-02-27

南瓜、西瓜、西红柿图片数据集

南瓜、西瓜、西红柿图片数据集,用于Fine Tuning的学习,包括训练集和验证集。 具体代码可参考:https://cchang.blog.csdn.net/article/details/86422080

2019-01-27

空空如也

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

TA关注的人

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