自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AEI的博客

have an excellent idea

  • 博客(26)
  • 收藏
  • 关注

原创 微信小程序的websocket使用stomp协议--简单实用的npm包

需求背景在公司实习期间,要求做一个小程序的websocket连接,用于设备的实时控制和状态查询。其中后端使用的是stomp协议,而微信小程序是不支持stomp协议的。但是当我知道的时候,后端已经全部调好只等我接入了…由于小程序的心跳机制和浏览器略有不同,其原生的websocketAPI对于stomp协议也不支持。所以就萌生了封装一个适用于stomp协议的websocketapi的想法实现过程解决心跳机制问题由于小程序的没有window对象,而前端的stompjs使用到的心跳机制是依赖于windo

2022-02-24 12:21:48 6074 3

原创 uni-app打包成安卓app步骤详解

前置:开发环境Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区HBuilderXApp离线SDK下载:最新android平台SDK下载3.1.10版本起需要申请Appkey,具体请点击链接正文:通过uni-app实现一套代码在微信小程序和安卓端app同时适配1.创建文件创建Demo文件,采用uni-app 模板2.创建应用在https://dev.dcloud.net.cn/app页面创建相同名称的应用,并且获取

2021-07-13 12:13:10 10160

原创 解决[“usingcomponents“][“van-button“]: “@vant/weapp/button/index“ 未找到:

解决步骤:命令行cd转到miniprogram目录(注意使用下面的命令行要在工程目录下cd)cd .\miniprogram\在这里生成package.jsonnpm init -y在这个目录下安装vantnpm i @vant/weapp -S --production由于我们是在miniprogram目录下安装的,所以就不用修改project.config.json了保持默认就好:{ ... "setting": { ... "packNpmM

2021-06-30 13:29:47 8338 5

原创 git push 后 OpenSSL SSL_connect: Connection was reset in connection to github.com:443 问题解决

问题描述:git clone 或 git push等操作都会出现这样的问题:OpenSSL SSL_connect: Connection was reset in connection to github.com:443又或者:Failed to connect to github.com port 443: Timed out试着ping github.com 是可以ping通的在网上找了很多方法解决,没有效果,最终在配置密钥的文件夹中发现了自己以前为了连接github埋的坑:其中前

2021-06-29 17:03:50 697

原创 利用中间件让express访问静态页面路径去后缀名

如果我们要访问静态文件下的html文件我们会这么写:app.use(’/static/’,express.static(path.join(__dirname,‘public’)))然后访问http://127.0.0.1:3000/static/index.html我们可以为app.use()加入一个中间件,来为static路径访问的文件加上后缀比如,加上html后缀let addHtml = function addhtml(req,res,next){ req.url+='.htm

2021-06-12 23:31:45 264

原创 Linux内存管理和页面置换相关算法

Linux内存管理和页面置换相关算法文章目录Linux内存管理和页面置换相关算法内存管理伙伴系统伙伴系统简介:算法实现:伙伴系统的回收算法:算法实现:代码实现(C++):页面置换FIFO算法FIFO简介:算法实现:代码实现:CLOCK 算法CLOCK简介:算法实现:代码实现:LRU算法LRU简介:算法实现:代码实现:内存管理伙伴系统Linux内核内存管理的一项重要工作就是如何在频繁申请释放内存的情况下,避免碎片的产生。Linux采用伙伴系统解决外部碎片的问题。伙伴系统简介:伙伴系统的宗旨就是用最

2021-05-27 21:03:28 967 4

原创 采用多线程技术解决生产者/消费者问题

采用多线程技术解决生产者/消费者问题解决思路:实现生产者,消费者的并发进程互斥操作(互斥问题)解决办法:使用互斥锁,在进行生产,消费时将将互斥锁锁住,防止被抢占线程。解决生产者生成上限和消费者消费下限(缓冲区问题)解决办法:每次生产消费过程,判断缓冲区是否已慢或空;若缓冲区出现满或空的情况,让相应的生产消费进程进入等待状态,等待另一个进程传来的消费生产信号。代码(C语言版):#include<stdio.h>#include<pthread.h>#defin

2021-04-27 18:10:40 861

原创 打印Linux系统进程树并可视化

环境搭建:主机:Windows10+VirtualBox 6.1操作系统 Unbuntu 20.10 (内核版本:5.8.0-44-generic)打印Linux系统进程树并可视化思路:利用pstree -p 查询进程树,并将其保存在txt中,实现线程树的查看和打印;或使用ps选项;或利用/proc目录将每一个进程的子进程和父进程及其他一些信息保存在txt中(采用中序遍历的方式),将文件用java进行处理,利用前端实现可视化的界面窗口。法一,通过pstree -p 预览进程树:利用

2021-04-27 18:09:02 1453

原创 利用css实现简约时钟效果

效果如下:具体代码:<!DOCTYPE html><html lang="ch-ZN"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=<device-width>, initial-scale=1.0"&g

2021-04-26 18:11:29 144

原创 数据结构入门:八大数据结构和三大算法(不断更新中)

文章目录数据结构基本定义和类型八大数据结构概述数组(Array)STL--vector链表( Linked List)链表的实现链表的STL实现栈( Stack)栈的实现:基于数组的栈实现基于结构体和指针的栈的实现栈的STL实现:队列(Queue)基于结构体和指针的队列的实现STL队列双端队列(可以同时对队首和队尾操作)优先队列树( Tree)树的数据结构实现二叉搜索树(BST)平衡二叉树和红黑树红黑树B-treeB+树区间树(线段树):STL中set的实现图(Graph)图的遍历图的拓扑排序图的最小生成树

2021-04-17 21:39:52 1651

原创 JavaScript实现的打字机效果

html:<!DOCTYPE html><html lang="ch-ZN"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <ti.

2021-04-15 19:41:25 2488 2

原创 内核的加载与装卸(C/C++版)

内核的加载与装卸(C/C++版)内核编译简介Linux内核模块时一个编译好的,具有特定格式的独立目标文件,用户可通过系统提供的一组与模块相关的命令将内核模块加载进内核,内核模块加载后,它具有以下特点:与内核一起运行在相同的内核态和内核地址运行时具有与内核同样的特权级可方便地访问内核中地各种数据结构。C语言内核编译需要内核中预定的宏,即使用MODULE——LICENSE宏声明此模块的许可证和module_init和module_exit初始化和请理函数声明,以及头文件说明,这里采用

2021-04-12 09:12:28 301

原创 Linux进程与线程的编程(C/C++版)

Linux进程与线程的编程(C/C++版)文章目录Linux进程与线程的编程(C/C++版)fork()函数vfork()函数clone()函数exec()函数进程等待进程终止(销毁)线程的创建和删除休眠线程同步线程结束线程等待学以致用,我们使用上述方法,设计三个与进程/线程有关的程序:通过进程的创建,用子进程打印超级玛丽。线程共享进程数据多线程实现单词统计(利用互斥锁)Linux的线程基础知识请跳转到Linux命令行学习第12小节了解相关基础。C/C++编译程序的实现请了解相关gcc和g++的命令行

2021-04-12 08:41:30 480 2

原创 最短路问题(更新中)

单源最短路dijkstra算法(不可包含负边权)算法实现过程:对于图G(点数,边数),新建顶点集合T,初始只包括源点;设置一个距离数组D,D[i]表示源点到i的距离(其中D[i]和源点相邻);选出距离最小的点,则该值就是源点s到该值对应的顶点的最短路径,并且把该点加入到T中(第一次);查看新加入的顶点是否可以到达其他顶点并且看看通过该顶点到达其他点的路径长度是否比T[其他点]到达短,如果是,那么就将这个点加入D;从D中找出最小值(除了源点本身和已经在第三步找到过的点),重复上述动作,直到T中

2021-03-12 14:13:38 237

原创 迭代器使用方法

迭代器 使用方法:容器类名::iterator 迭代器名;例:vector<int> vvector<int>::iterator iter; //定义正向迭代器//使用for(int i=1;i<=10;i++) v.push_back(i);for(iter=v.begin();iter!=v.end();iter++) cout<<*iter<<endl;...

2021-03-12 11:29:00 147

原创 Linux命令学习总结(超详细)

通过对《快乐的linux命令行》的学习,通过案例实现和对一些书上一些没有介绍的小细节的加注,加入了一些自己的理解,将文档分成了更细分的知识点目录和更加简洁的总结性,实例化的一篇shell命令详解。(点击目录可快速到达相应知识点)文章目录命令行启动shell简单命令行示例shell文件操作命令行cd快捷键关于文件名的重要规则操作系统Linux系统常用命令ls用法详解长格式列表的含义:确定文件类型less用法详解链接文件操作文件和目录cp(复制)选项cp 常用mv(移动或重命名)rm(删除文件和目录)创建链接

2021-03-11 11:30:36 4968

原创 VirtualBox安装Ubuntu(20.10桌面版)教程

由于学校的课程需要,需要安装一个Linux系统,根据电脑配置(8G运存,250G硬盘剩余),最终选择了使用虚拟机(VirtualBox,免费开源)上安装Linux系统(Ubuntu,使用最多,BUG少,界面简洁)的方案。根据需求,我将安装过程分为以下步骤。文章目录下载虚拟器:安装VirtualBox下载Ubuntu(教程采用清华大学开源软件镜像站加速下载)配置虚拟机虚拟机配置配置Ubuntu下载虚拟器:官方下载地址按照图示,下载相应的windows版本的虚拟机。安装VirtualBox打开下

2021-03-02 21:58:31 2301

原创 Codeforces Round #704 (Div. 2) C-D

Codeforces Round #704 (Div. 2) C-DC:Maximum width题意:在s找出一个子串与t(题目保证至少可以找出一个子串),求在此条件下的子串的“最大宽度”。最大宽带的定义:子串相邻的元素在母串中的的下标max(pi+1-pi)例如: aaabb 找出子串 ab ,则取 {1,5}。 此时max=4;解析: 由于“最大宽度”的定义,我们可知当存在最大宽度时,则最大宽度两边的元素一定是一个尽量考前一个尽量靠后。所以我们找到最靠前的子串(从头开始找,找到第一个子串

2021-02-25 14:57:40 151 3

原创 利用中位数求最短距离之和

最短距离之和针对问题:1.X轴上有N个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和。2.X轴上有N个点,求X轴上使它到这N个点的距离之和最小的点。相关定理:1.某点与两定点距离之和最小当且仅当动点在定点之间2.推广:当定点数超过2时,某点与两定点距离之和最小,当且仅当动点在两侧定点数相同的定点之间或定点上(当定点数为奇数时,取中位数的点)举例:1 2 4 7 则取2 3 4都为距离定点的距离之和最短的点;1 5 7 则取5为距离定点距离之和最短的点例题:

2021-02-20 11:04:34 1295

原创 二分查找(while形式实现)

while(l<=r){mid=(r+l)/2;if(x==mid){//执行操作}elseif(x<mid)r=mid-1;if(x>mid)l=mid+1;}

2021-02-06 00:50:22 217

原创 快读的使用方法(实现四类数据快读)

快速读入函数是利用字符读入比正常读入数字或字符串更加快速的原理而写成的,主要应对卡常的题目文章目录各类数据的快读函数:int型:longlong int型:string型:double型:具体使用方法:各类数据的快读函数:int型:inline int IntRead(){ char ch = getchar(); int s = 0, w = 1; while(ch < '0' || ch > '9') { if(ch == '-')

2021-01-30 19:08:56 1286

原创 lower_bound( )和upper_bound( )的基本用法

lower_bound( )和upper_bound( )是C++ STL模板库中的函数,其作用可以看作是一个简单的二分模板。基本使用方法:lower_bound:参数:lower_bound(首地址begin,末地址end+1,目标值);返回值:返回在指定区域内查找大于或等于目标值的第一个元素地址;特殊情况:在指定区域内未找到大于或等于目标值的元素则返回末地址end。upper_bound:参数:upper_bound(首地址begin,末地址end+1,目标值);返回值:返回在指定

2021-01-30 18:43:41 1243

原创 什么是同余运算及同余运算注意事项

模运算的加法,减法,乘法和四则运算类似A * B % C = (A%C * B%C)%C(A + B)%C = (A%C + B%C)%C(A - B)%C =(A%C - B%C)%C -->应为(A%C-B%C+C)%C,详见(A-B)%C的同模运算改动 但是除法并非如此,因为很大的可能会有小数或者是分数在除法的运算中出现,这样子的话,结果就是不对的。举一个例子:5/35/3 % 2=1.6666666666666666666666666666667,但是(5%2/3%2)%2=1。

2020-09-29 14:47:10 704

原创 快速幂基本性质和一些优化写法

前言,高次幂的一般计算:求 a^b % m的值,时间复杂度O(b)利用for来写,每一次循环都 mod m (利用模运算—>可在网站首页搜索"模运算"了解同模运算加减乘除定理)结果:b接近于10亿时,计算机运算时间接近于18秒快速幂的简单介绍:快速幂的递归写法前言:我们知道,3^4= 3^2 * 3^2 = 3^1 * 3^1 * 3^1 * 3^1 ;那么我们如果先将32的值计算出来,储存在临时变量p中,那么此时,34中需要计算的量就为:3^4= 3^2 * 3^2 = 3^1 *

2020-09-29 14:45:21 179

原创 鸽巢原理及推广应用

简单形式定理:如果把n+1个物体放入n个盒子,至少有一个盒子包含两个或更多的物体。证明:反证法 n个盒子每个盒子至多一个物品,总数至多为n,与有n+1个物体矛盾。意义:当某一范围内最多可规定出m个“类”,则当此范围内的元素多于m时,可知必定有某个“类”的元素大于1推广1(有关mod):n个数mod m 时,由于一个数mod m,可产生从0到m-1的余数,所以此时可看作有m个“类”,所以当n>m时,一定存在有ai mod m==aj mod m。推广1.1:有理数中的无限位小数必定在某一位

2020-09-29 14:41:09 735

原创 组合数计算(从1000到1e9的组合数各类求法)

组合数涉及的问题很多,求解过程中涉及的定理判定也有很多,期间断断续续参考了很多大佬们的博客,最终进行了总结。在此我使用用问题引入算法的方法来一步一步了解组合数。简单的组合数问题(运用快速幂及递归实现杨辉三角)组合数求解像关于组合数求和问题如∑ Cni(0<=i<=n) 可利用快速幂,此时∑ Cni = 2^n此为二项式定理推导出的结果 练习题可见洛谷P3414若求较小的组合数如C(n,m)(m<=n<=1000 保守估计1000,实际可能可以更大些,但不会超数量级

2020-09-29 14:40:16 2275 1

空空如也

空空如也

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

TA关注的人

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