自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

咸鱼一号的博客

咸鱼的日常

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

转载 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 1851

原创 可继承多线程单例模式

template<typenameT>classsingleton{public:staticinlineT*instance(){if(instance_==0){lock_.lock();if(instance_==0){instance_=newT;...

2021-09-07 14:21:43 162

转载 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 1415

原创 redis下载安装(Windows64位)

直接放下载地址https://github.com/microsoftarchive/redis/releases

2021-08-05 20:46:31 861

原创 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 2242

转载 在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 303

转载 哈希冲突的解决方法

Hash算法解决冲突的方法一般有以下几种常用的解决方法1, 开放定址法:所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入公式为:fi(key) = (f(key)+di) MOD m (di=1,2,3,……,m-1)※ 用开放定址法解决冲突的做法是:当冲突发生时,使用某种探测技术在散列表中形成一个探测序列。沿此序列逐个单元地查找,直到找到给定的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开...

2020-11-24 15:50:18 193

转载 HTTPS用的是对称加密还是非对称加密

你知道,HTTPS用的是对称加密还是非对称加密?1、引言随着互联网安全意识的普遍提高,对安全要求稍高的应用中,HTTPS的使用是很常见的,甚至在1年前,苹果公司就将使用HTTPS作为APP上架苹果应用市场的先决条件之一(详见《苹果即将强制实施 ATS,你的APP准备好切换到HTTPS了吗?》一文)。所以,无论是即时通讯IM还是其它应用,在网络安全意识增强的今天,很多场景下使用HTTPS是肯定没错的。对于即时通讯IM的开发人员来说,长连接用TLS这没疑问,短连接用HTTPS也没问题,但我想问你一个

2020-11-24 11:07:21 6145

转载 网络 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 1552

原创 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 921

原创 快速排序算法 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 85

原创 C++ list 函数用法整理

list 是顺序容器的一种。底层是一个双向链表。使用 list 需要包含头文件 list。双向链表的每个元素中都有一个指针指向后一个元素,也有一个指针指向前一个元素。list函数用法如下:assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 empty() 如果list是空的则返回true end() 返回末尾的迭代器 erase() 删除一个元素 front() 返回第一个元素...

2020-11-13 14:54:51 5926

原创 数据库学习知识点总结

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 290

原创 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 300

转载 线程池原理以及实现

假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。线程池技术正是关注如何缩短或调整T1,T3时间的技术,从而提高服务器程序性能的。线程池的简单实现一般一个简单线程池至少包含下列组成部分。线程池管理器(ThreadPoolManager):用于创建并管理线程池 工作线程(WorkThread): 线程池中线程 任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。 任务队列:用于存放没有处理的任务。提供一种缓

2020-11-06 19:06:03 84

转载 TCP流模式与UDP数据报模式

“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,1、TCP打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。 上面的例子中,往水池里倒几次水和接几次水是没有必然联系的,也就是说你可以只倒一次水,然后分10次接完。另外,水池里的水接多少就会少多少;往里面倒多少水,就会增加多少水,但是不能超过水池的容量,多出的水会溢出。结合TCP的概念,水池就好比接收缓存,倒水就相当于发送数据,接水就

2020-10-20 11:23:30 1815

原创 c++中的enum类

在实际问题中,有些变量的取值被限定在一个有限的范围内。比如一场比赛的结果只有胜、负、平局、比赛取消4种情况;一个袋子里只有红、黄、蓝、白、黑5种颜色的球;一个星期只有星期一、星期二、……、星期日7天。上述的数据只有有限的几种可能值,虽可以用int、char等类型来表示它们,但对数据合法性的检查却是一件很麻烦的事情。C++中的枚举类型专门用来解决这些问题。定义一个枚举类型的变量,虽然不知道变量具体是什么值,但能知道它可能会有哪些值。这样,就能对程序中所出现的变量的取值有一个很好的估量,从而使程序的...

2020-10-19 15:21:32 425

转载 在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?

https://www.zhihu.com/question/34873227/answer/518086565

2020-10-09 15:25:43 64

原创 重写重载与重定义的区别

1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virtual关键字可有可无2 重写(覆盖)是指派生类函数覆盖基类函数,特征是: a 不同的范围,分别位于基类和派生类中 b 函数的名字相同 c 参数相同 d 基类函数必须有virtual关键字3 重定义(隐藏)是指派生类的函数屏蔽了与其同名的基类函数,规则如下: a 如果派生类的函数和基类的函数同名,但是参数不同,此时,不管有无virtu...

2020-09-17 20:47:14 555

转载 最全的TCP面试知识点

TCP硬核面试题!35 张图解被问千百遍的 TCP 三次握手和四次挥手面试题前言不管面试 Java 、C/C++、Python 等开发岗位,TCP的知识点可以说是的必问的了。任 TCP 虐我千百遍,我仍待 TCP 如初恋。遥想小林当年校招时常因TCP面试题被刷,真是又爱又狠....过去不会没关系,今天就让我们来消除这份恐惧,微笑着勇敢的面对它吧!所以小林整理了关于TCP 三次握手和四次挥手的面试题型,跟大家一起探讨探讨。TCP 基本认识TCP 连接建立T...

2020-09-17 14:19:50 569

转载 操作系统面试题

什么是进程?进程就是正在执行的程序,是操作系统资源分配的基本单位。一般来说,进程包含指令、数据和PCB。延伸问题:孤儿进程和僵尸进程有什么区别?孤儿进程就是说一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。孤儿进程将被 init 进程(进程ID为1的进程)所收养,并由 init 进程对它们完成状态收集工作。因为孤儿进程会被 init 进程收养,所以孤儿进程不会对系统造成危害。 僵尸进程就是一个子进程的进程描述符在子进程退出时不会释放,只有当父进程通过 wait()

2020-09-13 21:20:22 1272

转载 mysql查询时间段内的数据

先来建表语句: SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for t_user -- ---------------------------- DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `userId` bigint(20) NOT NUL...

2020-09-09 20:17:51 4507

转载 stringstream常见用法介绍

本文主要介绍 C++ 中 stringstream 类的常见用法。1 概述<sstream> 定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作。本文以 stringstream 为主,介绍流的输入和输出操作。<sstream> 主要用来进行数据类型转换,由于 <sstream> 使用 string 对象来代替字符数组(snprintf方式),就避免缓冲区溢出的危险;而且

2020-09-09 15:21:26 843

转载 socket()编程简介

socket编程(C++)介绍​ 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。过程介绍​ 服务器端和客户端通信过程如下所示:![socket通信过程](http://images.cnblogs.com/cnblogs_com/helloworldcode/1414395/o_05232335-fb19fc7527e944d4845ef40831da4ec2.png)服务端​ 服务端的过程主要在该图的左侧部分,下面对上图的每一步进行详

2020-09-08 15:35:51 366

原创 linux命令ps aux|grep xxx

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令.使用该命令 可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的.如果直接用ps命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。grep (global search regular expression(RE) and .

2020-09-08 10:29:41 216

转载 Git使用教程

一:Git是什么?Git是目前世界上最先进的分布式版本控制系统。工作原理 / 流程:Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库二:SVN与Git的最主要的区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽

2020-08-31 13:45:54 70

转载 librdkafka介绍文档

ntroduction to librdkafka - the Apache Kafka C/C++ client librarylibrdkafka 是一个C实现的高性能 Apache Kafka 客户端,为生产环境提供了一个可靠和高性能的客户端。librdkafka 同样也提供了传统的 C++ 接口。目录以下目录适用于本文性能 性能数据 高吞吐 低延时 压缩 消息可靠性 用法 文档 初始化 配置 线程和回调 Brokers Producer

2020-08-04 10:08:24 3859 1

转载 kafka的c/c++高性能客户端librdkafka简介/使用librdkafka的C++接口实现简单的生产者和消费者

Librdkafka是c语言实现的apachekafka的高性能客户端,为生产和使用kafka提供高效可靠的客户端,并且提供了c++接口性能:Librdkafka 是一款专为现代硬件使用而设计的高性能库,它尝试将内存复制保持在最小,可以让用户决定是需要高吞吐量还是低延迟的服务,性能调优的两个最重要的配置是:*batch.num.messages:在发送消息之前累积在本地队列中等待的消息的最小数量。*queue.buffering.max.ms:等待batch.num.messages多.

2020-07-30 11:02:23 8790

原创 __cplusplus、extern “C”关键字意义

实习期间发现很多在学校学的东西与公司的代码框架差别甚远。经常会见到__cplusplus关键字#ifdef __cplusplusextern "C" {#endif void *memset(void* ,int , size_t); #ifdef __cplusplus}#endif这里面,两种关键字,都是为了实现C++与C兼容的,extern “C”是用来在C++程序中声明或定义一个C的符号,比如: extern “C” { int func(i.

2020-07-28 16:00:31 136

原创 #if defined和#if !defined的含义

对于大型项目一般要用到许多宏定义,那么我们有时考虑定义某个常量时,我们就必须返回检查原来此常量是否定义,但这样做很麻烦.if defined宏正是为这种情况提供了解决方案。#define ....#define a 100此时,我们要检查a是否定义,或者我们要给a一个不同的值,就加入如下句子#if defined a#undef a#define a 200#endif上述语句检验a是否被定义,如果被定义,则用#undef语句解除定义,并重新定义a为200同样,检验a是否...

2020-07-28 14:32:23 22009 3

原创 最大公约数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 222

原创 HDU 1087 Super Jumping! Jumping! Jumping! 最大递增子序列

Super Jumping! Jumping! Jumping!Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32564    Accepted Submission(s): 14692Problem DescriptionNowaday...

2018-06-12 23:43:45 127

原创 二分函数lower_bound()

函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置举例如下:一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,111.pos为要插入的位置的下标则pos = lower_bound( number, number + 8, 3) - nu...

2018-05-26 13:29:38 344

原创 set()函数 c++用法

SET()是一种包含已排序对象的关联容器。set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,它不会插入相同键值的元素,而采取忽略处理。平衡二叉树的检索使用中序遍历算法,检索效率高于vector、deque和list等容器。对于set容器中的键值,不可直接去修改!应该先删除该键值,再插入新的键值。c+...

2018-05-23 20:18:18 28369 3

转载 ACM大牛总结的线段树专辑

https://blog.csdn.net/qq_25605637/article/details/46967529【完全版】线段树很早前写的那篇线段树专辑至今一直是本博客阅读点击量最大的一片文章,当时觉得挺自豪的,还去pku打广告,但是现在我自己都不太好意思去看那篇文章了,觉得当时的代码风格实在是太丑了,很多线段树的初学者可能就是看着这篇文章来练习的,如果不小心被我培养出了这么糟糕的风格,实在是...

2018-05-21 17:17:39 147

原创 排列数与组合数

编写一个函数返回函数C(n.r)(0&lt;=r,n&lt;=10)int myc(int n,int r){int sum=1;for(int i=1;i&lt;=r;i++)sum = sum * (n+1-i)/i;return sum;}编写一个函数返回函数A(n.r)(0&lt;=r,n&lt;=10){int sum=1;for(int i=1;i&lt;=n;i++)sum=sum*...

2018-05-17 22:30:00 510

原创 hdu1166 敌兵布阵 线段树

C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。 中央情报局要研究敌人究竟演习什么战术,所以...

2018-05-17 20:31:55 154

原创 Java高精度计算

代码如下:import java.util.Scanner;import java.math.BigDecimal;public class Main{ public static void main(String[] args) { Scanner cin = new Scanner(System.in); BigDecimal a = cin.nextBigDecimal(); BigD...

2018-05-15 19:47:30 5781

原创 背包九讲

背包问题九讲 2.0 alpha1崔添翼 (Tianyi Cui, a.k.a. dd_engi)September 15, 2011本文题为《背包问题九讲》,从属于《动态规划的思考艺术》系列。这系列文章的第一版于2007年下半年使用EmacsMuse制作,以HTML格式发布到网上,转载众多,有一定影响力。2011年9月,本系列文章由原作者用LATEX重新制作并全面修订,您现在看到的是2.0 al...

2018-05-09 20:29:21 227

原创 2018 蓝桥杯省赛 B 组模拟赛(五)题 F题

蒜头君得到一张藏宝图。藏宝图是一个 10×1010 \times 1010×10 的方格地图,图上一共有 101010 个宝藏。有些方格地形太凶险,不能进入。整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。藏宝图上从一个方格到相邻的上下左右的方格需要 111 天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要多少天。代码如下:...

2018-04-20 11:34:24 142

空空如也

空空如也

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

TA关注的人

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