- 博客(40)
- 资源 (2)
- 收藏
- 关注
原创 centos7.5安装ftp服务器的经历
首先感谢https://www.w3cways.com/1509.html这篇文章的作者,转来转去的还是这篇文章中的配置比较靠谱。按照该文章中的配置配置完毕,可能会出现500 OOPS: vsftpd: refusing to run with writable root inside chroot()这个错误,可以参考https://blog.youkuaiyun.com/catoop/article/details/46670681中的解决方案,即在/etc/vsftpd/vsftpd.conf(自己ftp
2020-08-12 15:42:19
281
原创 关于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
220
原创 c++中静态函数与动态函数的区别以及与单例模式的关系
参考:https://zhuanlan.zhihu.com/p/37469260https://www.cnblogs.com/zxh1210603696/p/4157294.htmlhttps://blog.youkuaiyun.com/Wu_qz/article/details/81044823static: 静态数据成员 1、在类内数据成员前加上 static 关键字,即为静态...
2019-07-16 20:55:08
1537
原创 关于编程中的&&左右条件交换出现用时不一样的问题
今天二刷剑指offer时,刷到 栈的压入、弹出序列这道题时,出现了一个有意思的现象,题目以及程序如下:题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序...
2019-07-08 09:51:54
698
原创 矩形覆盖
题目描述我们可以用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
108
原创 变态跳台阶
题目描述一只青蛙一次可以跳上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
128
原创 跳台阶
题目描述一只青蛙一次可以跳上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
107
原创 斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数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
134
原创 旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{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
100
原创 用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()) { ...
2019-07-04 09:48:59
138
原创 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{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
114
原创 从尾到头打印链表
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。利用递归截止时,层层返回的性质class Solution {public: void digui (ListNode* head,vector<int>& res){ if(head == nullptr) return; digui(head-&g...
2019-07-04 09:46:44
101
原创 替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。分析本题可以使用从后到前的顺序进行,一个是原索引,一个是新索引,新索引位置为替换过后字符所处的位置。代码class Solution {public: void replaceSpace(char *str,...
2019-07-04 09:44:29
94
原创 二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:其实这道题需要注意一点,即每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。那么我们就可以从数组的最左下角进行搜索,如果目标值比当前值大,则向右前进,如果目标值...
2019-07-04 09:40:17
114
转载 C++虚函数的底层实现原理
原文链接:https://blog.youkuaiyun.com/u011000290/article/details/50498683在C++中,多态是利用虚函数来实现的。比如说,有如下代码:#include <iostream> using namespace std; class Animal { public: void Cry() { ...
2019-07-03 21:28:46
903
转载 虚函数实现原理
转载:https://blog.youkuaiyun.com/weixin_40237626/article/details/82313339前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算...
2019-07-03 20:05:47
396
转载 shared_ptr的线程安全性
参考:https://blog.youkuaiyun.com/d_guco/article/details/80155323shared_ptr的出现在某种程度上解放了c++程序员,c++11标准原生的支持了并发编程,在并发编程中shared_ptr的线程安全问题如何保证呢?先撇开shared_ptr对象的线程安全性,先看shared_ptr本身的线程安全问题。我们知道,shared_...
2019-07-02 09:27:54
2307
原创 一致性哈希的理解
参考:https://blog.youkuaiyun.com/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
373
原创 Reactor模式之跨线程唤醒
在学习Reactor的过程中,发现Reactor模型一般可以概述如下:服务器端为了能流畅处理多个客户端链接,一般在某个线程A里面accept新的客户端连接并生成新连接的socket fd,然后将这些新连接的socketfd给另外开的数个工作线程B1、B2、B3、B4,这些工作线程监听处理这些新连接上的网络IO事件(即收发数据),同时,还处理系统中的另外一些事务。这里我们将线程A称为主线程,B...
2019-06-29 16:57:16
505
1
转载 如何提高并发量
参考:https://blog.youkuaiyun.com/csdn_zhang99/article/details/81198919 https://blog.youkuaiyun.com/weiwangchao_/article/details/8937630 关于并发一直是一个面试常见的问题,在这里我基于我的理解,以及参考的网站上的资料做一个总结。个人认为,并发无非就是提高一个服务器...
2019-06-27 15:53:25
740
转载 C/C++协程学习笔记
转载:https://blog.youkuaiyun.com/qq_25424545/article/details/81529717 协程,又称微线程,纤程。英文名Coroutine。协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广...
2019-06-27 11:24:38
536
原创 C++多态
多态性可以简单地概括为“一个接口,多种方法”,c++多态整体可以划分为2种:静态多台与动态多态。二者最大的差别:静态多态是编译器在编译期间完成的,编译器会根据实参类型来选择调用合适的函数,如果有合适的函数可以调用就调,没有的话就会发出警告或者报错。动态多态是是在程序运行时根据基类的引用(指针)指向的对象来确定自己具体该调用哪一个类的虚函数。动态多态的条件:●基类中必须包含虚...
2019-06-27 09:43:59
113
原创 C++内存对齐的理解
参考:https://www.cnblogs.com/xylc/p/3780907.htmlhttps://blog.youkuaiyun.com/QQ1910084514/article/details/80611466首先,cpu对内存的读取是对齐的,如果cpu所读取的内存正好是被读取数据的首地址或者尾地址,那么CPU可以一次性将数据读取成功。如果cpu所读取的地址是被读取数据的中间位置,那么cp...
2019-06-26 17:23:19
138
转载 recv、send、read、write之间的联系与区别
参考:https://blog.youkuaiyun.com/u010765526/article/details/89424103https://blog.youkuaiyun.com/qq_36528114/article/details/79543668https://blog.youkuaiyun.com/CODINGCS/article/details/514758201. readinclude <un...
2019-06-19 21:16:28
2382
转载 C++之shared_from_this()
参考:https://blog.youkuaiyun.com/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
2978
转载 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
614
原创 epoll事件
在epoll中,主要涉及到3个函数:epoll_create()、epoll_ctl()以及epoll_wait(),详细内容如下:(《节选自Linux高性能服务器编程》)其中,epoll_event的事件如下:–EPOLLIN,读事件–EPOLLOUT,写事件–EPOLLPRI,带外数据,与select的异常事件集合对应–EPOLL...
2019-06-17 15:56:19
4753
原创 C++一个类实例化后的对象中虚函数表是共用的吗
我们首先知道,不同的类具有不同的虚函数表,但是如果针对一个类如果实例化多个对象,那么这些对象的虚函数表是共用的吗?首先如果自己去设计内存占用时,从节省内存的角度去考虑的话,我觉得这些实例化后的类应该是共用一张虚函数表的,因为每个内中的虚函数都是一样的。因此,我们可以如下进行一些验证:class classA {virtual void function() {}};...
2019-06-17 09:15:08
4160
转载 C++中的一些黑科技用法
转载:https://www.cnblogs.com/qiaozhoulin/p/5227673.html其中有一个问题,“如何产生一个不能被继承的类”,这道题我反反复复只想到,将父类的构造函数私有,让子类不能调用,最后归结出一个单例模式,但面试官说,单例模式作为此题的解答不够灵活,后来面试官提示说,可以用友元+虚继承,可以完美实现这样一个类当然那时我还不太明白,友元与虚继承我都极少接触过...
2019-06-16 15:13:21
415
1
转载 虚函数的作用
从整体上来讲,虚函数的作用主要是为了能够实现多态而设计的。虚函数的作用可以借用一下进行说明:虚函数的作用:通过以下两个程序来进行解释!可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时,基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数,而不是基类中定义的成员函数(只要派生类改写了该成员函数)。若不是虚函数,则不管基类指针指向的哪个派生类对象,调用时都会...
2019-06-16 15:01:18
18508
转载 图说C++对象模型:对象内存布局详解
转自:http://mp.blog.youkuaiyun.com/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
118
原创 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
130
原创 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
123
原创 LeetCode--easy--其他-- 颠倒二进制位
题目:颠倒二进制位颠倒给定的 32 位无符号整数的二进制位示例:输入: 43261596输出: 964176192解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 , 返回 964176192,其二进制表示形式为 00111001011110000010100101000000 。进阶:如果多次调用这个...
2018-09-16 14:59:05
234
原创 LeetCode--easy--排序和搜索-- 第一个错误的版本
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出...
2018-09-06 15:22:09
153
原创 LeetCode--easy--字符-- 颠倒整数
要求:给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。贴出来别人写的程序...
2018-07-28 09:42:44
134
原创 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
147
原创 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
231
原创 LeetCode--easy--数组--只出现一次的数字
要求:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?思路:本题可以采用异或的运算,即两个相同的数值异或计算之后为0x0000,所以对所有的数值进行异或,得到最终的就是只出现一次的数值元素。代码:class Solution {public: ...
2018-07-23 09:53:21
127
原创 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
1106
Fortify SCA 代码规则库-支持Java
2018-07-13
Android即时通讯--仿QQ即时聊天源码(含服务器)
2018-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人