基础知识记录
咸鱼一号的博客
这个作者很懒,什么都没留下…
展开
-
chrono::steady_clock求时间差
#include <iostream>#include <string>#include <chrono>void Run(){ for (int i = 0; i < 1000000000; ++i) { }}int main(){ auto beforeTime = std::chrono::steady_clock::now(); Run(); auto afterTime = std::chrono::steady_.转载 2021-09-07 16:03:30 · 2034 阅读 · 0 评论 -
可继承多线程单例模式
template<typenameT>classsingleton{public:staticinlineT*instance(){if(instance_==0){lock_.lock();if(instance_==0){instance_=newT;...原创 2021-09-07 14:21:43 · 198 阅读 · 0 评论 -
Linux中查看各文件夹大小命令du -h --max-depth=1
du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]常用参数:-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-b或-bytes 显示目录或文件大小时,以byte为单位。-c或–total 除了显示目录或文件的大小外,同转载 2021-08-11 16:28:26 · 1484 阅读 · 0 评论 -
redis下载安装(Windows64位)
直接放下载地址https://github.com/microsoftarchive/redis/releases原创 2021-08-05 20:46:31 · 939 阅读 · 0 评论 -
Linux报错问题:bash: vi: command not found
今天在安装从cmake的过程中配置环境变量,在执行完vi ~/.bash_profile 对文件进行修改后发现ls vi等命令统统失效,查过之后解决方法如下:1.执行 export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin命令使vi指令暂时恢复。2.重新使用vi ~/.bash_profile命令对文件修改部分进行恢复,下边的是我修改过的文件3.修改完成后使用source ~/.bash_profile命令激活文件,然后ls等..原创 2021-07-16 14:05:43 · 2303 阅读 · 0 评论 -
在Linux系统上安装Git
Git是目前流行的非常好用的版本控制工具,这里介绍两种安装方式,1、yum安装,2、从github上下载最新的源码编译后安装一、yum安装1、在Linux上是有yum安装Git,非常简单,只需要一行命令yum -y install git输入 git --version查看Git是否安装完成以及查看其版本号顺便说一下,yum安装git被安装在/usr/libexec/git-core目录下至此,yum安装git完成。二、从GitHub上下载最新的源码编译后安装..转载 2021-07-15 20:43:14 · 315 阅读 · 0 评论 -
哈希冲突的解决方法
Hash算法解决冲突的方法一般有以下几种常用的解决方法1, 开放定址法:所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入公式为:fi(key) = (f(key)+di) MOD m (di=1,2,3,……,m-1)※ 用开放定址法解决冲突的做法是:当冲突发生时,使用某种探测技术在散列表中形成一个探测序列。沿此序列逐个单元地查找,直到找到给定的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开...转载 2020-11-24 15:50:18 · 208 阅读 · 0 评论 -
HTTPS用的是对称加密还是非对称加密
你知道,HTTPS用的是对称加密还是非对称加密?1、引言随着互联网安全意识的普遍提高,对安全要求稍高的应用中,HTTPS的使用是很常见的,甚至在1年前,苹果公司就将使用HTTPS作为APP上架苹果应用市场的先决条件之一(详见《苹果即将强制实施 ATS,你的APP准备好切换到HTTPS了吗?》一文)。所以,无论是即时通讯IM还是其它应用,在网络安全意识增强的今天,很多场景下使用HTTPS是肯定没错的。对于即时通讯IM的开发人员来说,长连接用TLS这没疑问,短连接用HTTPS也没问题,但我想问你一个转载 2020-11-24 11:07:21 · 6229 阅读 · 0 评论 -
网络 TCP的头部 3次握手和4次挥手 出现大量TIME_WAIT或CLOSE_WAIT的原因及解决办法
TCP头部结构16位源端口:标识发送方端口 16位目的端口:标识接受方端口 32位序列号:数据按照序列号传输,如果接收方接受后的数据序列号出现错误,可以根据此序号重新排列 32位确认号:接受方接受到信号后,对发送方进行确认,此确认好为接受到的序列号+1 4位头部长度:标识TCP头部有多少个4字节,最大为1111(15),也就是说TCP头部最大有15*4=60个字节 6位保留长度:暂时没有标明用途 6位标志: -- URG:紧急指针是否有效。为1,标识某一位需要被优先处理。 -- AC转载 2020-11-23 14:30:09 · 1647 阅读 · 0 评论 -
VSCode配置 C++环境
VSCode开发C++服务转至元数据结尾创建:陈国民,最新修改于:一月 16, 2020转至元数据起始VSCode安装VSCode安装比较简单,可到官网下载VSCode。官网地址:https://code.visualstudio.com/安装Git库Windows上没有直接可使用的ssh工具。推荐大家通过安装Git,使用他带的ssh工具。Git下载地址:https://git-scm.com/安装时,记得选中将Git添加到系统Path目录中。安装VSCode插件R..原创 2020-11-20 10:49:44 · 1006 阅读 · 0 评论 -
快速排序算法 C++版
#include<bits/stdc++.h>using namespace std;void sor(int a[],int l,int r){ if(l>r)return; int i = l,j = r; int t = a[l]; while(i!=j) { while(i<j&&a[j]>=t) j--; while(i<j&&a[i]&...原创 2020-11-18 10:34:52 · 98 阅读 · 0 评论 -
C++ list 函数用法整理
list 是顺序容器的一种。底层是一个双向链表。使用 list 需要包含头文件 list。双向链表的每个元素中都有一个指针指向后一个元素,也有一个指针指向前一个元素。list函数用法如下:assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 empty() 如果list是空的则返回true end() 返回末尾的迭代器 erase() 删除一个元素 front() 返回第一个元素...原创 2020-11-13 14:54:51 · 6108 阅读 · 0 评论 -
数据库学习知识点总结
SELECT person_id, on_time, off_time, signin_time, signout_time, result, TIMESTAMPDIFF( MINUTE, on_time, off_time ) scheduleWorkingDuraion, TIMESTAMPDIFF( MINUTE, signin_time, signout_time ) realWorkingDuraionFROM `attendance_res...原创 2020-11-11 17:10:44 · 334 阅读 · 0 评论 -
C++ vector用法总结
vector 是向量类型。头文件:#include<vector>一.vector 的初始化 vector<int> v(10)定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的. vector<int> v(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1 int b[7]={1,2,3,4,5,9,8}; vector<int> v(b原创 2020-11-10 10:04:37 · 321 阅读 · 0 评论 -
线程池原理以及实现
假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。线程池技术正是关注如何缩短或调整T1,T3时间的技术,从而提高服务器程序性能的。线程池的简单实现一般一个简单线程池至少包含下列组成部分。线程池管理器(ThreadPoolManager):用于创建并管理线程池 工作线程(WorkThread): 线程池中线程 任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。 任务队列:用于存放没有处理的任务。提供一种缓转载 2020-11-06 19:06:03 · 114 阅读 · 0 评论 -
TCP流模式与UDP数据报模式
“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,1、TCP打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。 上面的例子中,往水池里倒几次水和接几次水是没有必然联系的,也就是说你可以只倒一次水,然后分10次接完。另外,水池里的水接多少就会少多少;往里面倒多少水,就会增加多少水,但是不能超过水池的容量,多出的水会溢出。结合TCP的概念,水池就好比接收缓存,倒水就相当于发送数据,接水就转载 2020-10-20 11:23:30 · 1863 阅读 · 0 评论 -
c++中的enum类
在实际问题中,有些变量的取值被限定在一个有限的范围内。比如一场比赛的结果只有胜、负、平局、比赛取消4种情况;一个袋子里只有红、黄、蓝、白、黑5种颜色的球;一个星期只有星期一、星期二、……、星期日7天。上述的数据只有有限的几种可能值,虽可以用int、char等类型来表示它们,但对数据合法性的检查却是一件很麻烦的事情。C++中的枚举类型专门用来解决这些问题。定义一个枚举类型的变量,虽然不知道变量具体是什么值,但能知道它可能会有哪些值。这样,就能对程序中所出现的变量的取值有一个很好的估量,从而使程序的...原创 2020-10-19 15:21:32 · 443 阅读 · 0 评论 -
在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?
https://www.zhihu.com/question/34873227/answer/518086565转载 2020-10-09 15:25:43 · 75 阅读 · 0 评论 -
重写重载与重定义的区别
1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virtual关键字可有可无2 重写(覆盖)是指派生类函数覆盖基类函数,特征是: a 不同的范围,分别位于基类和派生类中 b 函数的名字相同 c 参数相同 d 基类函数必须有virtual关键字3 重定义(隐藏)是指派生类的函数屏蔽了与其同名的基类函数,规则如下: a 如果派生类的函数和基类的函数同名,但是参数不同,此时,不管有无virtu...原创 2020-09-17 20:47:14 · 593 阅读 · 0 评论 -
最大公约数GCD与最小公倍数LCM
一、最大公约数(GCD) 最大公约数的递归:1、若a可以整除b,则最大公约数是b2、如果1不成立,最大公约数便是b与a%b的最大公约数。辗转相除法。1.欧几里得算法(辗转相除法)int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}设两数为a、b(a>b),用gcd(a,b)表示a,b的最大公约数,r=a (mod b) 为a除以b的余数,k为a除以b的商,即a÷b=k.......r。辗转相除法即是要证明gcd(a,b...原创 2020-07-27 13:56:59 · 253 阅读 · 0 评论