自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 centos7.5安装ftp服务器的经历

首先感谢https://www.w3cways.com/1509.html这篇文章的作者,转来转去的还是这篇文章中的配置比较靠谱。按照该文章中的配置配置完毕,可能会出现500 OOPS: vsftpd: refusing to run with writable root inside chroot()这个错误,可以参考https://blog.csdn.net/catoop/article/details/46670681中的解决方案,即在/etc/vsftpd/vsftpd.conf(自己ftp

2020-08-12 15:42:19 232

原创 关于linux中安装xampp的经历

通过本次配置xampp的经历,使我对linux中的命令权限有了更深入的了解,比如说使用root新建用户以后,新用户开始并不能执行sudo命令,还需要修改/etc/sudoers配置文件,例如要给liudiwei添加sudo权限则在“root ALL=(ALL) ALL”这一行下面,再加入一行:liudiwei ALL=(ALL) ALL其中,xulei为你当前使用的用户名,也就是...

2019-11-23 15:40:53 168

原创 c++中静态函数与动态函数的区别以及与单例模式的关系

参考:https://zhuanlan.zhihu.com/p/37469260https://www.cnblogs.com/zxh1210603696/p/4157294.htmlhttps://blog.csdn.net/Wu_qz/article/details/81044823static: 静态数据成员 1、在类内数据成员前加上 static 关键字,即为静态...

2019-07-16 20:55:08 1389

原创 关于编程中的&&左右条件交换出现用时不一样的问题

今天二刷剑指offer时,刷到 栈的压入、弹出序列这道题时,出现了一个有意思的现象,题目以及程序如下:题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序...

2019-07-08 09:51:54 653

原创 矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?class Solution {public: int rectCover(int number) { if(number<=2) return number; int cover1 = 2; ...

2019-07-04 09:52:27 88

原创 变态跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution {public: int jumpFloorII(int number) { if(number<=2) return number; vector<int> res(n...

2019-07-04 09:51:50 100

原创 跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。class Solution {public: int jumpFloor(int number) { if(number<=2) return number; int jumpOne = 2; in...

2019-07-04 09:50:50 85

原创 斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39class Solution {public: int Fibonacci(int n) { if(n<2) return n; int fibOne = 1; int fibTwo = ...

2019-07-04 09:50:15 111

原创 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。class Solution {public: int minNumberInRotateArr...

2019-07-04 09:49:37 72

原创 用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()) { ...

2019-07-04 09:48:59 109

原创 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。class Solution {public: TreeNode* reConstructBinaryTree(vector<in...

2019-07-04 09:48:16 93

原创 从尾到头打印链表

题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。利用递归截止时,层层返回的性质class Solution {public: void digui (ListNode* head,vector<int>& res){ if(head == nullptr) return; digui(head-&g...

2019-07-04 09:46:44 76

原创 替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。分析本题可以使用从后到前的顺序进行,一个是原索引,一个是新索引,新索引位置为替换过后字符所处的位置。代码class Solution {public: void replaceSpace(char *str,...

2019-07-04 09:44:29 69

原创 二维数组中的查找

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:其实这道题需要注意一点,即每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。那么我们就可以从数组的最左下角进行搜索,如果目标值比当前值大,则向右前进,如果目标值...

2019-07-04 09:40:17 85

转载 C++虚函数的底层实现原理

原文链接:https://blog.csdn.net/u011000290/article/details/50498683在C++中,多态是利用虚函数来实现的。比如说,有如下代码:#include <iostream> using namespace std; class Animal { public: void Cry() { ...

2019-07-03 21:28:46 872

转载 虚函数实现原理

转载:https://blog.csdn.net/weixin_40237626/article/details/82313339前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算...

2019-07-03 20:05:47 365

转载 shared_ptr的线程安全性

参考:https://blog.csdn.net/d_guco/article/details/80155323shared_ptr的出现在某种程度上解放了c++程序员,c++11标准原生的支持了并发编程,在并发编程中shared_ptr的线程安全问题如何保证呢?先撇开shared_ptr对象的线程安全性,先看shared_ptr本身的线程安全问题。我们知道,shared_...

2019-07-02 09:27:54 2248

原创 一致性哈希的理解

参考:https://blog.csdn.net/qq_34262582/article/details/80326189https://yikun.github.io/2016/06/09/%E4%B8%80%E8%87%B4%E6%80%A7%E5%93%88%E5%B8%8C%E7%AE%97%E6%B3%95%E7%9A%84%E7%90%86%E8%A7%A3%E4%B8%8E...

2019-06-30 21:46:00 338

原创 Reactor模式之跨线程唤醒

在学习Reactor的过程中,发现Reactor模型一般可以概述如下:服务器端为了能流畅处理多个客户端链接,一般在某个线程A里面accept新的客户端连接并生成新连接的socket fd,然后将这些新连接的socketfd给另外开的数个工作线程B1、B2、B3、B4,这些工作线程监听处理这些新连接上的网络IO事件(即收发数据),同时,还处理系统中的另外一些事务。这里我们将线程A称为主线程,B...

2019-06-29 16:57:16 445 1

转载 如何提高并发量

参考:https://blog.csdn.net/csdn_zhang99/article/details/81198919 https://blog.csdn.net/weiwangchao_/article/details/8937630 关于并发一直是一个面试常见的问题,在这里我基于我的理解,以及参考的网站上的资料做一个总结。个人认为,并发无非就是提高一个服务器...

2019-06-27 15:53:25 644

转载 C/C++协程学习笔记

转载:https://blog.csdn.net/qq_25424545/article/details/81529717 协程,又称微线程,纤程。英文名Coroutine。协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广...

2019-06-27 11:24:38 487

原创 C++多态

多态性可以简单地概括为“一个接口,多种方法”,c++多态整体可以划分为2种:静态多台与动态多态。二者最大的差别:静态多态是编译器在编译期间完成的,编译器会根据实参类型来选择调用合适的函数,如果有合适的函数可以调用就调,没有的话就会发出警告或者报错。动态多态是是在程序运行时根据基类的引用(指针)指向的对象来确定自己具体该调用哪一个类的虚函数。动态多态的条件:●基类中必须包含虚...

2019-06-27 09:43:59 89

原创 C++内存对齐的理解

参考:https://www.cnblogs.com/xylc/p/3780907.htmlhttps://blog.csdn.net/QQ1910084514/article/details/80611466首先,cpu对内存的读取是对齐的,如果cpu所读取的内存正好是被读取数据的首地址或者尾地址,那么CPU可以一次性将数据读取成功。如果cpu所读取的地址是被读取数据的中间位置,那么cp...

2019-06-26 17:23:19 106

转载 recv、send、read、write之间的联系与区别

参考:https://blog.csdn.net/u010765526/article/details/89424103https://blog.csdn.net/qq_36528114/article/details/79543668https://blog.csdn.net/CODINGCS/article/details/514758201. readinclude <un...

2019-06-19 21:16:28 1948

转载 C++之shared_from_this()

参考:https://blog.csdn.net/zk3326312/article/details/79108690 c++11中的shared_from_this()来源于boost中的enable_shared_form_this类和shared_from_this()函数,功能为返回一个当前类的std::share_ptr,使用方法如下:#include<memor...

2019-06-19 20:45:27 2917

转载 C++之std::bind分析

bind原理图释一直对std::bin有一些疑惑,直到发现这篇文章,才清晰了不少。内容如下: (原文:http://blog.think-async.com/2010/04/bind-illustrated.html本文解释了bind 是如何工作的。为了清晰,我对图中的语法作了一些简化(例如,省略函数调用操作符的参数类型),并且简化了 bind 的实现.1....

2019-06-19 15:56:43 545

原创 epoll事件

在epoll中,主要涉及到3个函数:epoll_create()、epoll_ctl()以及epoll_wait(),详细内容如下:(《节选自Linux高性能服务器编程》)其中,epoll_event的事件如下:–EPOLLIN,读事件–EPOLLOUT,写事件–EPOLLPRI,带外数据,与select的异常事件集合对应–EPOLL...

2019-06-17 15:56:19 4644

原创 C++一个类实例化后的对象中虚函数表是共用的吗

我们首先知道,不同的类具有不同的虚函数表,但是如果针对一个类如果实例化多个对象,那么这些对象的虚函数表是共用的吗?首先如果自己去设计内存占用时,从节省内存的角度去考虑的话,我觉得这些实例化后的类应该是共用一张虚函数表的,因为每个内中的虚函数都是一样的。因此,我们可以如下进行一些验证:class classA {virtual void function() {}};...

2019-06-17 09:15:08 4026

转载 C++中的一些黑科技用法

转载:https://www.cnblogs.com/qiaozhoulin/p/5227673.html其中有一个问题,“如何产生一个不能被继承的类”,这道题我反反复复只想到,将父类的构造函数私有,让子类不能调用,最后归结出一个单例模式,但面试官说,单例模式作为此题的解答不够灵活,后来面试官提示说,可以用友元+虚继承,可以完美实现这样一个类当然那时我还不太明白,友元与虚继承我都极少接触过...

2019-06-16 15:13:21 364 1

转载 虚函数的作用

从整体上来讲,虚函数的作用主要是为了能够实现多态而设计的。虚函数的作用可以借用一下进行说明:虚函数的作用:通过以下两个程序来进行解释!可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时,基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数,而不是基类中定义的成员函数(只要派生类改写了该成员函数)。若不是虚函数,则不管基类指针指向的哪个派生类对象,调用时都会...

2019-06-16 15:01:18 17742

转载 图说C++对象模型:对象内存布局详解

转自:http://mp.blog.csdn.net/postedit阅读目录0.前言1.何为C++对象模型?2.文章内容简介3.理解虚函数表3.1.多态与虚表3.2.使用指针访问虚表4.对象模型概述4.1.简单对象模型4.2.表格驱动模型4.3.非继承下的C++对象模型5.继承下的C++对象模型5.1.单继承5.2.多继承6.虚继承6.1.虚基类表解析6.2.简单虚继承...

2019-06-16 10:51:26 81

原创 LeetCode-59. 螺旋矩阵II

题目:leetcode第59题--螺旋矩阵II要求:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:   输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]思路:分析本题,其实本题与54题几乎一样,可以将过程分为4个过程,分别为向右、向下、向左、向上。碰到...

2019-01-08 19:20:23 92

原创 LeetCode-54. 螺旋矩阵

题目:leetcode第54题--螺旋矩阵要求:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[ [1, 2, 3, 4], [...

2019-01-06 20:01:59 96

原创 LeetCode--easy--其他-- 颠倒二进制位

题目:颠倒二进制位颠倒给定的 32 位无符号整数的二进制位示例:输入: 43261596输出: 964176192解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 ,  返回 964176192,其二进制表示形式为 00111001011110000010100101000000 。进阶:如果多次调用这个...

2018-09-16 14:59:05 200

原创 LeetCode--easy--排序和搜索-- 第一个错误的版本

你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出...

2018-09-06 15:22:09 129

原创 LeetCode--easy--字符-- 颠倒整数

要求:给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。贴出来别人写的程序...

2018-07-28 09:42:44 107

原创 LeetCode--easy--数组--旋转数组

要求:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]说明:尽可能想出更多的解决方案,至...

2018-07-23 17:08:09 114

原创 LeetCode--easy--数组--移动零

要求:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。思路:可以使用erase()函数先删除掉vector容器中元素0,同时记录下数组中所有0元素的个数,然后再利用push_back()...

2018-07-23 16:13:06 203

原创 LeetCode--easy--数组--只出现一次的数字

要求:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?思路:本题可以采用异或的运算,即两个相同的数值异或计算之后为0x0000,所以对所有的数值进行异或,得到最终的就是只出现一次的数值元素。代码:class Solution {public: ...

2018-07-23 09:53:21 92

原创 codingame (一)--Temperatures(base)

The Goal:In this exercise, you have to analyze records of temperature to find the closest to zero.Sample temperatures Here, -1 is the closest to 0.Rules:Write a program that prints the tempe...

2018-07-19 17:20:12 1043

Fortify SCA 代码规则库-支持Java

Fortify SCA 代码规则库-支持Java, 静态代码扫描 Fortify在线规则库网址,符合代码安全的编码参考 Fortify SCA Java

2018-07-13

Android即时通讯--仿QQ即时聊天源码(含服务器)

Android即时通讯--仿QQ即时聊天源码(含服务器),能够实现多客户端的即时聊天功能,即时通讯的基本原理讲解,注释相信,博客地址:http://blog.csdn.net/qq_20889581/article/details/50755449

2018-07-13

空空如也

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

TA关注的人

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