自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++使用curl实现https、http通信

curl实现https、http通信curl实现https、http通信代码实现依赖库和实现类文件curl实现https、http通信代码实现post httpint CHttpClient::Post(const std::string & strUrl, const std::string & strPost, std::string & strResponse){ CURLcode res; CURL* curl = curl_easy_init(); if (

2020-10-28 11:04:27 3283

原创 C++使用easywsclient发送websocket包

使用easywsclient发送websocket包easywsclient源码头文件 easywsclient.hpp源文件 easywsclient.cpp发送消息接收消息建立连接,持续发送心跳包easywsclient源码头文件 easywsclient.hpp#ifndef EASYWSCLIENT_HPP_20170819_MIOFVASDTNUASZDQPLFD#define EASYWSCLIENT_HPP_20170819_MIOFVASDTNUASZDQPLFD// This

2020-07-08 17:28:53 2629 4

原创 Duilib实现聊天窗口中发送和接收语音消息、图片、表情和文件

Duilib实现聊天窗口中发送和接收语音消息、图片、表情和文件1.需要的源文件及dll2.实现的效果图片1.需要的源文件及dll资源链接.2.实现的效果图片

2020-06-30 18:14:23 792

原创 C++使用ShellExecute执行ffplay命令播放音频

1、直接调用ffplay来播放音频ShellExecute(NULL, _T("open"), _T("ffplay"), sPara.c_str(), NULL, SW_SHOWNORMAL)缺点:如果播放声音出错,需要加环境变量,但没有合适的位置加。优点:可以直接播放2、使用cmd命令调用脚本执行ffplay来播放音频ShellExecute(NULL, _T("open"), _T("cmd.exe"), _T("shell.bat"),NULL, SW_HIDE);shell.ba

2020-06-29 11:23:24 831

原创 Duilib中创建新的页面时RichEdit中的滑动条设置,自动移动到底部

m_pChatRecordListBox = (RichEdit*)FindControl(_T("chat_form"));//初始化时加载富文本框控件,忽略Load();//加载完毕后直接设置 移动到底部。会出现问题,进到页面时是空白,需要移动鼠标才会出现((ScrollableBox*)m_pChatRecordListBox)->EndDown();//我们可以等RichEdit控件加载完毕后,再设置延时移动到底部//可以在另一个线程中添加延时Sleep,然后再执行//需要注

2020-06-28 17:14:34 654

原创 C++实现打开浏览本地文件框,并可以任意选择文件类型

C++实现打开浏览本地文件框,并可以任意选择文件类型1.所需要的头文件2.代码实现1.所需要的头文件#include <Commdlg.h>2.代码实现 OPENFILENAME ofn; // 公共对话框结构 TCHAR szFile[MAX_PATH]; // 保存获取文件名称的缓冲区 ZeroMemory(&ofn, sizeof(OPENFILENAME)); ofn.lStructSize = sizeof(OPENFILENAME); ofn.h

2020-06-01 10:17:37 1791 2

原创 C++使用SHBrowseForFolder选择浏览文件夹窗口

C++选择文件夹包含头文件代码包含头文件#ifdef WIN32#include <shlobj.h>#endif代码 //选择文件夹代码 bool func() { BROWSEINFO bi; bi.hwndOwner = NULL; bi.pidlRoot = CSIDL_DESKTOP;//文件夹的根目录,此处为桌面 bi.pszDisplayName = NULL; bi.lpszTitle = NULL;//显示位于对话框左上部的提示信息

2020-05-26 16:30:36 1179 2

原创 python面试题

文章目录python部分1.可变数据类型和不可变数据类型2.深拷贝和浅拷贝3.new()和init()的区别用法参数返回值4.一行代码实现1+2+3+4+....+10的8次方5.python装饰器作用,实现一个装饰器,在函数前后打印一行Log6.什么是python自省7.手写邮箱正则表达式8.python实现单例的四种模式9.垃圾回收机制10.如何遍历一个内部未知的文件夹11.CPU密集型和IO...

2019-12-16 20:08:22 92

原创 约瑟夫环问题数学解法

文章目录1.简介2.思路3.python代码4.总结约瑟夫环递推公式:f(1) = 0f(i) = (f(i-1) + m) % n1.简介问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。2.思路1.一共n个人,编号为(0~(n-1)),设最后的胜利者为本次编号y的人2.第一次报完数后剩下n-1个人,我们把编号重新...

2019-12-06 17:30:54 1318

原创 python动态规划dp

文章目录1.简介2.背包问题3.最长非降子序列1.简介什么是动态规划动态规划算法通常基于一个递推公式及一个或多个初始状态。当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度,因此它比回溯法、暴力解法要快的多。2.背包问题问题描述假设我们有n件物品,分别编号为1, 2…n。其中编号为i的物品价值为vi,它的重量为wi。为了简化问题,假定价值和重量都是整数值...

2019-12-06 10:07:26 1978

原创 python遍历二叉树

文章目录1.创建树结构2.生成树3.遍历树1.创建树结构首先定义一个完整的二叉树结构,根节点、左子树、右子树class BinaryTree(object): def __init__(self, rootObj): self.key = rootObj self.leftChild = None self.rightChild = N...

2019-12-04 19:38:31 170

原创 前后端分离项目,前端vue后端flask数据库mongodb

文章目录前言1.前端框架vue-element-admin1.1路由和侧边栏1.2.添加自己的页面1.3.添加树形控件导航1.4.使用vuex1.5.使用vue-socket.io2.后端flask框架2.1.代码框架搭建2.2.操作Mongodb数据库2.3.RabbitMQ2.4.flask_socketio3.总结前言初次接触前后端分离项目,记录下。1.前端框架vue-element-...

2019-11-29 20:12:25 1657 1

原创 基于django的登录注册系统

文章目录1.效果展示1.1登录页面1.2注册页面1.3主页(页面简直不能再简单了)2.功能实现2.1用户密码加盐后加密处理2.2登录2.3注册时发送确认邮件2.4自动生成图片验证码3.小结1.效果展示1.1登录页面1.2注册页面1.3主页(页面简直不能再简单了)2.功能实现2.1用户密码加盐后加密处理import hashlibdef hash_code(s,salt='my...

2019-11-27 16:53:36 833

原创 flask_socketio向前端页面发送socket包,vue前端使用vuex接收socket包

flask_socketio向前端发送socket包1.初始化#app.pyfrom flask_socketio import SocketIOsocketio = SocketIO(app,async_mode ='eventlet',cors_allowed_origins='*')socketModel.init_socket(socketio)2.创建model#soc...

2019-11-27 16:01:00 1537

原创 实现简单的django项目,包含注册登录及后台管理的功能,符合MVC的思想

文章目录实现一个简单的django项目,包含注册登录及后台管理的功能,符合MVC的思想环境配置1.创建django项目HelloWorld2.创建应用(APP)3.数据库配置4.模型5.视图和模板6.admin后台管理7.小结实现一个简单的django项目,包含注册登录及后台管理的功能,符合MVC的思想1. 包含基本的登录注册功能及admin管理功能2. 对django有个简单的了解环境配...

2019-11-23 10:29:46 609

原创 第一个Django程序------HelloWorld

文章目录第一个Django程序1.环境配置2.创建项目3.小结第一个Django程序1.环境配置1.运行平台:windows2.python环境:Python 3.7.13.python编辑器:PyCharm4.Django版本:Django version 2.2.72.创建项目1.创建工程,名字叫HelloWorld2.会自动生成django代码,目录结构如下3.创建...

2019-11-20 20:00:22 226

原创 python装饰器应用

1.简单注册表funcs = []def register(func): funcs.append(func) return func @registerdef a(): return 3 @registerdef b(): return 5 result = [func() for func in funcs...

2019-11-01 20:23:22 158

原创 python后端主动向vue前端发送socket数据

常见的前后端交互协议都是前端发送请求,后端响应请求。但是想让后端直接推送内容到前端很难,而socket就能帮助我们解决这个问题,使得后端可以主动向前端推送数据1.python后端发送数据socketio = SocketIO(app,async_mode ='eventlet',cors_allowed_origins='*')socketModel.init_sock...

2019-10-24 09:04:51 3134

原创 关于element 树形控件tree刷新或跳转页面后高亮显示当前节点

1.数据存储整个树的数据是从后端获取的,存在vuex中构造树时用Map将id和内容存起来,key: 像这样结构的字符串 (一级名:二级名:三级名:四级名)value:树节点id这几级内容也都是存在vuex中的,在树形控件中监听这几级内容的变化,只要有变化,就通过map查到树节点id,实现树节点高亮显示因为我做的项目需要用到四级树形控件,构造的map看起来可能会复杂些...

2019-09-12 11:48:15 4761

原创 python实现对mongodb数据库进行多表联合查询 lookup

最近项目中需要用到对mongodb数据库进行联合查询,百度了一下都只有mongodb语句的联合查询方法,没有通过python来进行查询的。 可能是因为mongodb数据库不是关系型数据库,大家对于它的关系也用不到那么多。表字段定义mycol_case_collection = mydb["case_collection"] #表Amycol_ta...

2019-08-30 20:07:24 5887

原创 转换Json类型数据为element tree控件中需要的label、id、child格式

话不多说,先上效果图数据源数据是后台存在mongodb数据库中,传给前端直接用的"case_name": "案件名1", "task_id": ["10000", "10001"]"case_name": "案件名2", "task_id": ["20000", "20001","20002"]"case_name": "案件名3", "task_id": ["3000...

2019-08-26 10:41:48 3302

原创 解决element中input组件触发事件失效的问题

最近刚接触element组件,在使用el-input组件时需要实现一个功能:只有一个搜索框,输入内容完成后,自行返回搜索结果像这样搜索函数已经写好了,只等合适的时间触发事件就好查了下element官网中input输入框的事件的描述大喜!这不是直接@blur="func"就可以了吗,迫不及待的试了一下啊啊啊啊!不行!进入页面后只有第一次可以,别的都不行,真是...

2019-08-23 20:59:53 17235 3

原创 web开发实现表格分页及查询功能 后端python+flask+mongodb 前端vue+elementUI

前言我也是第一次接触vue+element框架,对一些样式的理解可能还不是很深入,如果有什么错误的地方,还请指出目标:①实现python+flask+mongodb从数据库中读取数据②后端使用vue+element将数据转换为json格式并传给前端③前端将数据以表格的形式展示出来,并且可以分页,带查询功能话不多说,先上成果,下附完整代码这算是一个比较简单的项目...

2019-08-17 17:36:33 3676 3

原创 leetcode刷题记录(四)(哈希表)

时间:2019-08- 05到 2019-08-10题目类型:1.哈希表这周主要是了解哈希表,所以挑了一些简单题来练手。还是有一些题目不能找到如何构建哈希表,看了答案才清楚,还需要继续努力。...

2019-08-10 16:23:11 688

原创 leetcode第319题 灯泡开关

319(灯泡开关)初始时有n个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第i 轮,每i个灯泡切换一次开关。 对于第n轮,你只切换最后一个灯泡的开关。 找出n轮后有多少个亮着的灯泡。思路:对于n个灯泡中的其中一个m(1<=m<=n)号灯泡,有以下几种情况...

2019-08-03 11:18:35 924

原创 leetcode刷题记录(三)(动态规划)

时间:2019-07-29到 2019-08-02题目类型:1.动态规划 303(区域和检索,数组不可变) 简单,求数组num[i]到num[j]的和 300(最长上升子序列) 初始值,dp[0] = 1; 状态转移方程: for(int i = 1; i < n; i++) { int te...

2019-08-02 20:01:33 669

转载 Leetcode第1029题 两地调度(简单题)

题目:公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 30。第三个...

2019-07-27 14:41:19 771

原创 leetcode刷题记录(二)

时间:2019-07-22 到 2019-07-26题号:15、16、18、19、26、27、28、44、45、55、67、69、70、455题目类型:1、双指针 15(三数之和) 16(最接近的三数之和) 18(四数之和)2、贪心 44(通配符匹配)(贪心+回溯) 45(跳跃游戏II) 55(跳跃游戏)3、递归 70(爬楼梯)...

2019-07-26 20:47:52 646

原创 Leetcode第44题 通配符匹配(回溯法)

题目:给定一个字符串(s) 和一个字符模式(p) ,实现一个支持'?'和'*'的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s可能为空,且只包含从a-z的小写字母。p可能为空,且只包含从a-z的小写字母,以及字符?和*。示例1:输入:s = "aa"p =...

2019-07-26 15:46:59 998

原创 leetcode刷题记录(一)

时间:2019-07-13 到 2019-07-20题号:1、2、3、4、6、7、8、9、11、12、13、14、20、50、122、134、135、136、415题目详细:1、给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 思路:暴力 代码:https://leetcode-cn...

2019-07-20 18:08:38 2701

原创 shell脚本 bin/sh^M: bad interpreter: No such file or directory

问题:bin/sh^M: bad interpreter: No such file or directory原因:.sh脚本在windows系统下用记事本文件编写的。不同系统的编码格式引起的。解决方法:修改.sh文件格式   (1)使用vi工具      vi test.sh    (2)利用如下命令查看文件格式      :set ff 或 :set fileforma...

2019-01-08 14:03:42 700

原创 使用git向远程仓库推送分支

git init本地仓库初始化 git remote add origin git@xxx将本地仓库与远程库关联 git remote -v查看远程库详细信息 git checkout -b dev_yzj origin/dev_yzj在本地库创建远程库分支对应的分支 修改bug git add     git commit 提交修改到本地 ...

2018-10-10 10:30:48 9387

原创 回溯法(八皇后问题)及C语言实现

       回溯法,又被称为“试探法”。解决问题时,每进行一步,都是抱着试试看的态度,如果发现当前选择并不是最好的,或者这么走下去肯定达不到目标,立刻做回退操作重新选择。这种走不通就回退再走的方法就是回溯法。回溯VS递归        很多人认为回溯和递归是一样的,其实不然。在回溯法中可以看到有递归的身影,但是两者是有区别的。        回溯法从问题本身出发,寻找可能实现的所有情况...

2018-09-15 15:57:43 82730 22

原创 C语言知识点(四):链表二(循环链表)

循环链表链表还可以把链表的两头连接,形成了一个环状链表,称为循环链表。和它名字的表意一样,只需要将表中最后一个结点的指针指向头结点,就形成了一个环。                                                                                         图1 循环链表循环链表和动态链表相比,唯一的不同就是循环...

2018-09-12 16:33:24 823

原创 C语言知识点(四):链表一(单链表)

本次主要介绍从尾部添加新节点1、定义节点结构 数据域:int x指针域:struct Node *nexttypedef struct Node{ int x; struct Node *next;}node;2、动态添加新节点头结点:head 尾节点:tail插入节点:ins通过将 tail-&gt;next = ins(将插入节点 插入链表尾部) ...

2018-09-11 17:56:41 943

原创 C语言知识点(三):基础知识

1、头文件中的ifndef/define/endif有什么用防止该头文件被重复引用2、#include&lt;filename.h&gt;和#include"filename.h"的区别对于#include&lt;filename.h&gt;,编译器从标准库路径开始搜索"filename.h"对于#include"filename.h",编译器从用户的工作路径开始搜索"filena...

2018-09-08 17:18:29 727

原创 C语言知识点(二):程序的内存分配

一个由C/C++编译的程序占用的内存分为以下几个部分:(1)栈区(stack):由编译器自动分配释放,速度较快,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。(2)堆区(heap):一般由程序员分配释放,速度较慢,由new分配的内存,若程序员不释放,程序结束时可能由OS回收。(3)全局区(静态区)(static):全局变量和静态变量的存储是放在一起的,初始化的全局变...

2018-09-08 14:55:24 824

原创 C语言知识点(一):共用体和大小端模式

1、共用体(union)当一个共用体被声明时, 编译程序自动地产生一个变量, 其长度为联合中类型字节数最多的变量的类型长度的整数倍。以上例而言,最大长度是double数据类型,所以foo的内存空间就是double型的长度。 1 2 3 4 5 union foo{/*“共用”类型“FOO”*/       char...

2018-09-07 20:52:21 1249

原创 Setup安装程序创建自定义页面

使用Inno Setup 编译器创建新页面1、创建一个属于自己的页面     ①、定义创建页面的函数procedure CreateTheWizardPages;var                                                                       //定义不同控件的变量RadioButton : TRadioButt...

2018-08-16 17:12:39 4121

原创 C++操作EXCEL中的单个CELL,支持读写、设置字体大小、颜色和单元格属性

头文件中函数定义        //启动EXCEL程序 BOOL Init(); //关闭EXCEL,释放资源 void Close(); //从EXCEL读取数据前的加载函数 BOOL InitRead(const char* filePath); //保存EXCEL表到 filePath BOOL Save(const char* filePath);...

2018-04-12 17:43:28 4509 3

c++封装好的支持Http/https类,包含dll/lib

c++支持,已封装好的支持http、https的get,post方法,支持下载和上传文件功能。包含openssl+curl的dll、lib、头文件,可以直接添加到代码中使用

2020-10-28

easywsclient.rar

这个库旨在帮助C++项目快速开始使用WebSocket,这个小库可以很容易地被抛出到现有的项目中,对于无法立即发现的复杂构建,你甚至可以通过将.cpp文件备份到项目的现有文件之一来作弊,是的,WebSocket非常棒,可以保证它集成到你的项目中!这个项目没有特别的界面需求,可以与新的C++11特性或者老的C++项目一起工作。 easywsclient非常简单,只有一个实现文件。

2020-07-08

richedit.rar

duilib中RichEdit控件中添加表情、图片、及文件,适合聊天窗口中添加,资源中只包含实现的代码、接口及调用的例子、不含demo

2020-06-30

richedit.rar

duilib中RichEdit控件中添加表情、图片、及文件,适合聊天窗口中添加,资源中只包含实现的代码、接口及调用的例子、不含demo

2020-06-28

innoSetup自定义页面

使用Inno Setup编译器创建新页面,创建自定义安装页面,适合初学者学习参考。

2018-08-16

C++读写EXCEL,设置单元格和字体属性

用微软提供的组件来操作excel ,C++操作EXCEL,支持读写、设置字体和单元格属性,适合初学者参考。

2018-04-12

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

TA关注的人

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