
后端
文章平均质量分 59
c++
研究猿小刘
别懒,跑个demo试试
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
加载配置文件内容利用反射动态创建对象和调用方法(开闭原则的体现)
反射与开闭原则原创 2022-11-26 17:02:37 · 679 阅读 · 0 评论 -
大小端的判断
大小端的判断原创 2022-11-20 19:56:24 · 336 阅读 · 0 评论 -
TCP/UDP/Socket 通俗讲解
socket 和TCP,UDP原创 2022-11-20 16:44:34 · 3150 阅读 · 0 评论 -
selenium加载插件自动化控制插件
selenium加载chrome插件来自动化控制插件原创 2022-11-04 19:43:29 · 3194 阅读 · 0 评论 -
解决selenium驱动和Chrome 不兼容问题
一.报错信息:selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 88Current browser version is 97.0.4692.71 with binary path C:\Users\Administrator\AppData\Local\Google\C原创 2022-01-23 22:35:44 · 2662 阅读 · 0 评论 -
使用shell写贪吃蛇代码解析
使用shell写贪吃蛇代码解析原创 2021-08-21 22:37:14 · 516 阅读 · 0 评论 -
linux服务监控与运维
python 自动化运维一, 安装psutil 包1.1、安装压缩包:以root身份登陆CentOS依次 执行以下命令:wget https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz如果wget 下不下来,则直接在浏览器中复制 粘贴链接https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz 下载下来,用ftp传输工具传输到linux上,原创 2021-08-15 20:24:10 · 941 阅读 · 2 评论 -
opencv 对图片像素的加减乘除
1.两张图片2. 代码import cv2 as cvdef add_demo(img1,img2): img = cv.add(img1,img2) cv.imshow("add",img)def subtract_demo(img1,img2): img = cv.subtract(img1,img2) cv.imshow("subtract: ",img)def mul_demo(img1,img2): img = cv.multiply(img1原创 2020-12-31 12:32:51 · 489 阅读 · 0 评论 -
flask 文件上传
1.文件目录如下: 一定要新建那个 upload 文件保存文件夹,保存时会报错2. 代码:upload.html<html><head> <title>File Upload</title></head><body> <form action="http://localhost:5000/uploader" method="POST" enctype="multipart/form-data">原创 2020-12-27 23:20:33 · 206 阅读 · 0 评论 -
ajax 与flask 交互
文件夹目录:index.js $(document).ready(function(){ $("button").click(function(){ $.get("/hello",null,function(data){ //alert("数据"+data+"\n状态:"+status); $('#info').html(data) result = data原创 2020-12-27 23:00:19 · 400 阅读 · 0 评论 -
Flask 找不到模板踩一个坑
快速上手:Flask pip install virtualenv ,可能会因为网络传输原因,第一次执行会报错,多试几次模板那里踩个坑原创 2020-12-23 01:19:59 · 3180 阅读 · 0 评论 -
python连接数据库
1.python使用数据库db = MySQLdb.connect(“localhost”, “root”, “123456”, “testdb”, charset=‘utf8’ ) 即db = MySQLdb.connect(“localhost”, “用户名”, “密码”, “数据库名”, charset=‘utf8’ )#!/usr/bin/python# -*- coding: UTF-8 -*-import MySQLdb# 打开数据库连接db = MySQLdb.connect("原创 2020-12-18 23:51:02 · 317 阅读 · 2 评论 -
弹幕爬虫
1.爬取 oidimport reimport requests# av_id:视频编号av_id = 'BV1cy4y1k7A2'print("爬取视频编号为:{}".format(av_id))# 爬取视频页面htmlresp = requests.get('https://www.bilibili.com/video/' + av_id)# print(resp.text)# 用正则表达式匹配到对应的oid(弹幕id)match_rule = r'cid=(.*?)&a原创 2020-12-18 14:03:25 · 622 阅读 · 1 评论 -
使用朴素贝叶斯过滤侮辱性评论简单应用与通俗注释
1. 这个代码要从testNB()函数开始入手看def testNB(): """ 朴素贝叶斯算法测试 """ #1、加载数据集[ listClasses为每条数据的类别向量,1代表侮辱性文字,0代表正常言论] listOposts,listClasses = loadDataSet() #2、创建词汇表[ set] wordList = vocabList(listOposts) #3、构造训练数据的文档单词矩阵[每一条数据的单词如果在词原创 2020-11-21 22:18:04 · 705 阅读 · 1 评论 -
SayHello
flask 留言板改进计划: 留言者的ip ,时间,所用的设备(电脑,平板,还是手机), 偷偷 给他存到数据库,原创 2020-12-25 01:26:06 · 206 阅读 · 0 评论 -
鸿蒙os2.0环境搭建gradle-5.4.1-all.zip下载失败问题解决方案
鸿蒙os2.0环境搭建gradle-5.4.1-all.zip下载失败问题解决方案解决 gradle-5.4.1-zip因拉取超时而失败的这个问题鸿蒙官网的解决方案1.按照上面链接找到 环境安装2.点击蓝色超链接 下载Gradle插件3.按照官网上一次进行下图波浪线所画的步骤4.5.重启项目...原创 2020-10-03 23:46:42 · 3753 阅读 · 0 评论 -
c++中的隐式的this指针,在面相对象语言中普遍存在吗?
c++中的隐式的this指针,在面相对象语言中普遍存在吗?自定义一个类,例如自己写了一个类叫A,使用A定义很多对象例如 A a1,A a2 ,A a3 …A这个类中定义的成员变量b,成员函数c(),那么对象a1,a2,a3中分别各自有独立的成员变量b,但他们共用一份成员函数c(),加入c()函数中使用到了成员变量b,那么他们如何把自己独立的b传入一个共用的c()函数,a1.c(),a2.c(),a3.c()我看那个视频讲的汇编是当a1.c()调用c()函数时,对象a1会把a1的地址通过一个原创 2020-07-09 13:38:34 · 164 阅读 · 1 评论 -
平衡二叉树数的插入与调整新理解
1.平衡二叉树失衡的原因以及调整的思路?平衡二叉树的失衡原因是由于 插入者的破坏,因此插入点为破坏者由于插入者到来,使平衡因子的绝对值,即多了一层调整的思路: 找到距离插入者即破坏者最近的被破坏者(1)让被破坏者往下降低一层,(2)破坏者的直接孩子往上去一层取代原来被破坏者的位置(3)让被破坏者往上提升一层,这样就可以保证插入前后每层的平衡因子和插入前一样,不会失衡如下图例1所示2.RR,LL,RL,LR,这四种类型,其实是根据破坏者和被破坏者之间的关系来说的,如果破坏者在被破坏者的左原创 2020-11-22 13:00:14 · 249 阅读 · 0 评论 -
0.10前面为啥会加上(float),吃饱撑着了没事找事吗?
1.第15行代码0.01前面为啥要 加 (float)2. 解释0.1系统默认是一个double类型,你把他赋值给一个float类型的变量,系统会自动做一次自动转换,由于double能表示小数点后8位,float只能表示小数点6位,那么就少了两位,你在他前面加一个(float)其实就是告诉编译器你别给我转换,我不需要你偷偷转换,我就是要定义一个float类型的0.1不是你默认的,那么系统不会再偷偷给你做自动转换3.从字节多的类型向字节低的类型转换会丢失精度,这很容易理解,因为装不下,装不原创 2020-11-18 17:38:30 · 483 阅读 · 0 评论 -
对直接插入的改进: 希尔排序
上一篇 :直接插入排序1.插入排序最高效的时候是: 1.当待排序的记录个数较少时 2.且待排序序列的关键字基本有序时,效率最好 希尔排序正式基于这两点从而减少记录的个数和序列基本有序两个方面对直接插入进行的改进。对未排序区进行了分组 2.对直接插入排序进行改进后的代码 链接:接上一篇直接插入排序//插入排序,由于c语言中没有办法使用 引用,所以这里我给他传入了一个数组的长度void insertSort(int *a,int length){ int gap=5;//未排序区每隔几个取一原创 2020-11-07 19:17:10 · 193 阅读 · 2 评论 -
如何用c 语言写一个 定时器
1.代码分析2.代码#include <stdio.h>#include <time.h>#include <conio.h>#ifndef CLOCKS_PER_SEC#define CLOCKS_PER_SEC 1000#endifint main( void ){ clock_t start; long count = 1; start = clock(); while(1) { if((clock() - start) ==原创 2020-10-23 21:39:14 · 8787 阅读 · 1 评论 -
选择排序的本质
1.排序的本质与直接插入排序2.对直接插入排序的改进:希尔排序3.交换排序的核心思想1. 选择排序没啥可说的 就是每次从待排序的序列区中找出一个最小的添加到有序序列区,待排序序列区减1,有序序列区加1。直接上代码#include<stdio.h>void swap(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}int main(int argc, char const *argv[]){ int a[]={2,1,3,5,4,原创 2020-11-08 11:11:42 · 187 阅读 · 0 评论 -
一点一点写快速排序
诀窍: 拆东墙补西墙,东拆西补1.试着写一下一趟排序,比a[0]小的都在a[0]的左边比a[0]大的都在a[0]右边#include<stdio.h>void swap(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}void quickSort(int *a,int length){//试着写一下一趟排序,比a[0]小的都在a[0]的左边比a[0]大的都在a[0]右边 int low=0; int high=length-1; i原创 2020-11-08 10:20:46 · 97 阅读 · 0 评论 -
交换排序的核心思想
1. 理解排序做的工作: 排序的过程是一个逐步扩大记录的有序序列长度的过程, 在排序的过程中可以将排序区分为两个区域: 有序序列区 和 无需序列区 有序序列区: 已经排好序的序列 无序序列区: 尚未排好序的序列我们所要做的工作就是: 把有序序列区一点一点增大直到长度变为最大为止,无需序列区一点点减少直到减为0位置2.交换排序的本质是: 交换无序列区,产生一个有序的的数,有序列区长度加一,无序列区长度减一3.冒泡排序冒泡核心思想是: 相邻元素进行比较交换4.直接上代码:#incl原创 2020-11-07 21:29:13 · 591 阅读 · 1 评论 -
排序的本质与直接插入排序
1. 理解排序做的工作: 排序的过程是一个逐步扩大记录的有序序列长度的过程, 在排序的过程中可以将排序区分为两个区域: 有序序列区 和 无需序列区 有序序列区: 已经排好序的序列 无序序列区: 尚未排好序的序列我们所要做的工作就是: 把有序序列区一点一点增大直到长度变为最大为止,无需序列区一点点减少直到减为0位置2.直接插入排序 的实质就是:把数组的前半部分看成有序序列区,数组的后半部分看成无序序列区从无序序列区从左到右每次取一个元素和 有序序列区中的元素进行比较(遍历),如果比它小原创 2020-11-07 17:59:34 · 247 阅读 · 0 评论 -
选择排序,我很笨,不能一下子写出一个代码,只能一步一步的走
选择排序排序时间复杂度 O(n平方)每次找到一个最小值依次放在数组的左边,知道找不到最小值一,思路一,找出数组中的最小索引,让他和第一元素交换public class Main{ //冒泡排序思路1. public static void sort1(int[]a) { //4,5,6,7,0,2,1,3 //让最小位置和a[0]交换得到 0 5 6 7 4 2 1 3 for(int i=1;i<a.length;i++)原创 2020-08-03 17:36:45 · 184 阅读 · 0 评论 -
使用RestClient模拟表单向后端的请求中,后端收不到数据
1.后台打印接收的 Student 值,发现全为空2. 指定Headers为Content-Type:application/x-www-form-urlencoded;3.发现后台就有数据了原创 2020-10-22 14:56:04 · 497 阅读 · 0 评论 -
任意给定一个数,求比小的,最大的2的整数次幂(一个神级算法)
任意给定一个数,求比小的,最大的2的整数次幂(一个神级算法)来自外国一位天才手中的高校算法例如: 给定一个数 17,那么可以返回2的4次方,即返回16, 给定一个数 7,返回2的2次方,即放回4 只采用右移和或运算,执行效率高 此方法在java中的Integer类中: public static int highestOneBit(int i) { // H...原创 2020-05-01 00:10:49 · 1906 阅读 · 0 评论 -
签到功能程序的后台分析
1.老师添加课程2. 根据openid查询学生3.根据课程id 查询 该课程id所对应的课程的状态是否可签到4,根据课程id选择 最新一条的签到key,5. 学生注册6.老师给某个课程id下对应的课程颁发签到授权码,让该课程可以签到7.老师停止签到...原创 2020-10-19 22:17:22 · 872 阅读 · 0 评论 -
课堂随机提问回答问题神器三
1.在这个.cpp文件下新建一个名字为example.txt文件,2.在example.txt 文件中输入班级同学的名字,以空格作为分隔3.运行此代码,用鼠标右键点击控制台选出幸运观众4.输入空格重新进行下一次抽选,再次点击鼠标右键产生幸运观众。#include <fstream>#include <iostream>#include <string>//打印彩色的helloworld#define Kong 32#include <windows原创 2020-10-13 11:02:28 · 758 阅读 · 0 评论 -
课堂随机提问中奖生成器二
1.关于流的输入输出的理解(1).文件存放在外部磁盘设备中,而程序是加载到内存中才能运行的(2).流的输入和输出其实相对于内存而言来说的(从内存视角看输入输出)(3). 流的输入其实就是从外部设备(例如磁盘) 流入 到内存,即流入到程序中,举个最简单的例子,例如你编写的代码中有一个 常量 a,这个常量a 的初始值未知,必须从外部文件加载得到,假设磁盘中有一个 hello.txt文件,假设这个文件中有且只有一个数据 1,那么从hello.txt中读到 1并且把它赋值给常量 a 的过程, 我们把它叫做 流原创 2020-10-12 23:18:50 · 659 阅读 · 0 评论 -
由彩色helloworld引出的一个课堂随机提问中奖器
使用window api 打印彩色的 helloworld1.直接上代码://打印彩色的helloworld#include <windows.h>//GetStdHandle和SetConsoleTextAttribute在头文件windows.h中#include <iostream>using namespace std;void SetColor(unsigned short ForeColor=3,unsigned short BackGroundColor原创 2020-10-12 16:48:42 · 290 阅读 · 0 评论 -
藏在Prototype设计模式中的浅复制与深复制
Prototype设计模式解析参考博客,对这篇博客中的重点讲解浅clone与深clone:1.如果对一个引用进行拷贝,那么就是浅拷贝。如果对一个引用指向的对象进行拷贝,那么就是深拷贝。2.浅拷贝会出现什么问题?浅拷贝的拷贝副本的修改会影响源对象的状态和内容。最简单的由引用之间赋值引起的浅拷贝所引发的问题/** * @Author: 刘浩然 * @Date: 2020/5/8 18:30 */class User{ String name; int age; p原创 2020-05-08 19:37:37 · 160 阅读 · 0 评论 -
JDK1.7中的HashMap源码揭秘
HashMap源码揭秘1,put方法逐行解释:public V put(K key, V value) { if (table == EMPTY_TABLE) {//table数组是否为空,如果为空(即new的hashMap()没有指定hashMap的大小), inflateTable(threshold);//则进行初始化 } ...原创 2020-05-01 23:24:43 · 163 阅读 · 0 评论 -
鸿蒙os2.0页面加载以及跳转背后的执行流程图
本来比这个全,结果画着画着我双击了,然后我以为是图片没了呢我想还是重新弄吧,结果就由重新截图,发现是真的没了,第一次其实已经是画好了,ctrlv一下就可以了,但是我又截图了一次,导致第一次画的丢失,幸亏中间画了一半我拍了张照片最终我重新又画了一张3.直接上代码:(1).config.js{ "app": { "bundleName": "com.ttit", "vendor": "ttit", "version": { "code": 1, "原创 2020-10-14 12:44:31 · 3790 阅读 · 0 评论 -
page跳转和pageslice跳转
```javapublic class ProductListSlice extends AbilitySlice { @Override protected void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_product_list_layout); Button button = (Button) fi.原创 2020-10-14 10:10:04 · 425 阅读 · 0 评论 -
在鸿蒙IDE中导入一个项目报错ERROR: Check whether ‘hwsdk.dir‘ is configured in the local.properties file or whethe
如何导入一个项目:选择要导入的项目1.错误打印台:ERROR: Check whether ‘hwsdk.dir’ is configured in the local.properties file or whether ‘OHOS_SDK_HOME’ is configured in the environment variables.2.解决(1)新建一个 local.properties文件(2)在local.properties中写入sdk的路径hwsdk.dir=C:\Use原创 2020-10-04 00:44:17 · 2879 阅读 · 0 评论 -
在2020年的最后一天,结合一款鸿蒙操作系统下的开源词典代码我写下了我对鸿蒙系统 的思考与感悟
1. 我对鸿蒙2.0 的思考2.在这里插入图片描述原创 2020-12-30 17:24:53 · 195 阅读 · 0 评论 -
鸿蒙2.0词典项目应用
1.本地数据库没找到单词,就异步请求网络2 在searchWebDict() 方法中 新new一个线程AsyncSearchWord(),并开启它3.异步线程通过网络访问金山词霸 查找到单词提交给主线程(调用它的线程),并且把它插入到数据库4. 执行回调,让主线程得到从金山词霸上爬取的数据库里之前没有的单词5.项目代码gitee链接蒙娜丽宁 老师6.感谢 b栈 蒙娜丽宁 老师,尽量去clone蒙娜丽宁老师的项目链接7.免责声明: 一切代码开源协议以蒙娜丽宁老师的为主,本博主主要是用原创 2020-12-17 01:21:43 · 352 阅读 · 0 评论 -
HarmonyOS 2.0 手机开发者 < Beta > 来啦
我的第一个鸿蒙 手机端helloworld (发布当日迫不及待打印了一个helloworld,哈哈哈哈)原创 2020-12-16 19:09:26 · 439 阅读 · 0 评论