自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hanani_Jia的博客

计算机科学与技术专业萌新

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

原创 C++服务器 十二 vim简单使用

  我们接触过Linux的人那肯定都是知道vim的,我之前的博客也对vim有过一些介绍,这里也推荐大家看一下。https://blog.csdn.net/Hanani_Jia/article/details/81631386 vim教程一 基本使用https://blog.csdn.net/Hanani_Jia/article/details/81698760 vim教程二 简单配置 ...

2018-09-28 21:41:41 477

原创 Linux讲解 进程间通信 共享内存

   今天我们要介绍的是最后一个进程间通信的方式也是最重要的一个共享内存,共享内存是最快的一个IPC形式。所以在实际应用中有着很广泛的应用。   共享内存的意思是,我们现在把同一块物理内存映射到进程A和进程B两个进程的地址空间,两个进程都可以看到这一块内存。共享内存之所以要比其他的进程间通信快是因为,我们的进程可以直接读取内存的数据而不需要进行任何拷贝,不需要调用任何系统调用来传递数据。而我们...

2018-09-28 19:41:24 757

原创 Linux讲解 进程间通信 消息队列

   消息队列是进程间通信的另外一种方式,那什么是消息队列呢?消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过使用消息队列来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。消息队列,本质就是一个消息的链表,是一系列保存在内核中消息的列表。用户进程可以向...

2018-09-26 17:33:28 321

原创 领扣--唯一摩尔斯密码

国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-...","-.-.","-..",".

2018-09-26 00:12:07 469 1

原创 剑指offer--从尾到头打印链表

题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。     之前接触过链表的逆置所以这里上来直接用了三指针方法。struct ListNode {       int val;       struct ListNode *next;       ListNode(int x) :             val(x), next(NULL) {...

2018-09-23 16:44:19 451

原创 Linux讲解 进程间通信 命名管道

  上次我们讲了进程间通过管道通信的方式,上次所说的管道也叫做匿名管道,匿名管道创建了一块缓冲区供进程来使用,但是这块缓冲区是没有名字的,因此除了具有亲缘关系的进程之外其他进程都找不到这块缓冲区。  今天我们要介绍的是命名管道,命名管道实际上是一种特殊文件,在同一台计算机的不同进程之间或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。在创建这个命名管道的时候给他起一...

2018-09-23 14:33:29 615

原创 剑指offer--机器人的活动范围 回溯法

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?  写这道题的时候了解到了一个新的方法叫...

2018-09-21 21:34:22 530

原创 Linux讲解 进程间通信 管道

  今天我们讲解进程间的通信,首先回顾一下进程的概念:进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。  进程的用户空间是相互独立的,一般来说是不能相互访问的,但是很多情况需要我们不同的进程共同完成一个任务,或者进程之间需要沟通交流的时候,就必须要用到我们的进程间通信。  经...

2018-09-21 20:05:33 708

原创 Linux讲解 基础IO 软硬链接

  今天我们介绍在Linux文件系统中的软硬链接的概念。  我们上次说了一个概念,一般情况下都是我们的一个文件名对应一个inode号,但是也存在我们不同的文件名字指向了同一个inode结点的可能性,也就是说我打开的不同文件但是内容确实一样的,这就让我想到了我们windows下边的快捷方式。这就是硬链接。可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件...

2018-09-21 16:11:03 947

原创 领扣--二叉树深度

  在领扣上刷题遇到了求二叉树深度的题目。对于二叉树的深度求解已经很熟悉了通过一个递归五行代码直接解决问题。这是题目,自然直接编写程序。class Solution {public:int maxDepth(TreeNode* root) {if (root == NULL)return 0;return (maxDepth(root->right)>...

2018-09-19 20:44:35 361

原创 Linux讲解 文件系统 inode节点

我们可以通过stat命令来查看更加详细的文件属性。  这里边其中有几个概念我们是要了解清楚的,就是Block,IO Block,以及Inode。  Inode是一个很重要的概念,理解透彻inode对整个文件系统的了解层次就会提升一个等级。  我们需要一点一点说起我们文件存储在磁盘上,磁盘存储的最小单位是扇区,每一个扇区的大小是512字节也就是0.5kb,但是我们的操作系统在读取磁盘...

2018-09-19 19:30:32 1688 1

原创 Linux讲解 文件系统 缓冲区

  这次我们对Linux文件系统进行更加深入的介绍。我们先看一个程序。我们通过三个函数来进行一下输出。我们的printf自然就是直接在屏幕上的输出,fwrite是我们库函数里边的输出,他的参数(获取数据的地址,写入内容的单字节个数,写入单字节数据的个数,文件描述符)这里我们的文件描述符是stdout也就是我们的标准输出,所以他会直接打印到我们的屏幕上边。write有两种用法这里是用的复杂的...

2018-09-19 19:26:52 2295

原创 剑指offer--和为S的连续正数序列

题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序...

2018-09-17 10:39:59 414

原创 Linux讲解 基础IO 重定向

重定向就是不使用系统的标准输入端口,标准输出端口和标准错误输出端口,而进行重新的指定,所以重定向分为输入、输出和错误重定向,通常情况下重定向到一个文件。重定向的符号有:>      输出重定向到一个文件或设备 覆盖原来的文件>!      输出重定向到一个文件或设备 强制覆盖原来的文件>>      输出重定向到一个文件或设备 追加原来的文件<      ...

2018-09-15 22:23:22 1468

原创 Linux讲解 基础IO 文件描述符

   上次我们介绍了Linux中基础IO的系统调用,这次我们介绍的是文件描述符。   文件描述符是我们之前所没有接触到的一个名词。内核是利用文件描述符来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。但是文件描述符这个概念是只有在Linux和unix才有。   在Linux下有一句话是一切皆文件,文件描述符...

2018-09-15 20:28:28 1896

原创 剑指offer--数组中重复的数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。class Solution {public:// Parameters://        numbe...

2018-09-14 15:53:06 270

原创 剑指offer--孩子们的游戏

题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去.....

2018-09-13 20:13:30 854

原创 剑指offer--数组中出现一次的数字

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字  之前遇到过类似的题,不过当时的题目是整型数组中除了一个数字外,其他都出现了偶数次,找出那个只出现一次的,那个就很简单了,这时候就能想到我们的异或运算符,异或是一个位运算符,他会对比两个数字的二进制数,相同位置符号相同为0不同为1。所以如果我们一个数字中除了某一个数字外,其他的数字都出现了...

2018-09-11 21:04:07 368

原创 Linux讲解 基础IO-系统调用

   上次我们介绍了我们在C语言里边用到的一些IO接口,这些接口是其他人为我们编写好之后提供的,我们还可以通过一些系统的IO,我们要去分清这两个的区别,分清楚什么是系统调用什么是库函数。可以通过这张图来看一下,这张图通俗来说就是我们的系统调用要比我们的库函数要更加的接近硬件。系统调用是通向操作系统本身的接口,是面向底层硬件的。通过系统调用,可以使得用户态运行的进程与硬件设备(如CPU、...

2018-09-10 21:20:23 1445

原创 剑指offer--和为S的两个数字

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。class Solution {public:vector<int> FindNumbersWithSum(vector<int> array, int sum)...

2018-09-10 19:25:06 386

原创 C++ 服务器 十一 服务器开发的shell命令 二

再介绍一个命令就是我们的top命令top的作用类似于我们在windows下的任务管理器不过没有windows中的那么花哨,并且top指令查询出来的内容也是实时发生变化的。第一部分也就是亮白线上边的部分,显示了我的计算机开启了23分钟,有两个用户,后边的load average有三个数字第一个数字是最近一分钟的系统负载,最近五分钟的系统负载,还有最近十五分钟的系统负载,所以我们在跑程序的...

2018-09-10 10:07:23 464 3

原创 C++ 服务器 十 服务器开发的shell命令 一

  距离上次介绍服务器的博客已经过去很久了,这段时间一直在复习自己之前学过的知识,没有宽带所以没有花很多流量来看视频课程,最近才刚开始看,但是前几天的课程都是在教你安装虚拟机和xshell之前我也写博客介绍过虚拟机的安装和xshell的使用教程如果不明白的可以去看我之前的博客,这里我就不过多的说了对于Linux中的权限我也有专门的博客进行过介绍 ,权限也要明白chomd的使用方法。ht...

2018-09-10 09:57:02 667

原创 剑指offer--字符流中第一个出现一次的字符

题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。  最开始看到这个题目的时候自己感觉没有思路,就直接跳过了,然后开始看其他的题目,但是在翻看自己博客的时...

2018-09-09 16:15:26 635

原创 Uboot start.s阶段分析

   最近接触arm课程,了解了一些硬件的一些东西。最近给大家介绍一下arm里边了解的一些东西。  首先这里介绍一些uboot,什么是uboot,uboot是干什么的有什么作用呢?UBOOT的主要作用是用来启动linux内核,因为CPU不能直接从块设备中执行代码,需要把块设备中的程序复制到内存中,而复制之前还需要进行很多初始化工作,如时钟、串口、dram等;  如要想让CPU启动lin...

2018-09-09 14:32:17 480

原创 剑指offer--把数组排成最小数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323 因为我在刷剑指offer的时候是按通过率来刷的,先把通过率高的题刷了,虽然经常遇到没思路的或者在写程序的时候遇到一些大大小小的问题但是大部分都能解决,这个题目让我遇到了很多问题,并且看了代码之后还有很多问...

2018-09-07 16:45:15 541

原创 sort函数在STL中的底层实现

   今天在刷剑指offer的时候遇到了sort函数然后并不是很懂,所以简单的看了一下发现东西还是很多的,这里简单给大家总结一下我理解的一些东西。 首先看一些基础的就是sort函数的用法,我们在cplusplus网站上可以查一下sort的用法,这里有一个默认用法和一个扩展的用法,可以看出来两种用法传入的参数个数是不相同的,默认的函数我们传入了两个参数,通过英文也能看出来他的两个参数一个是要...

2018-09-07 16:19:20 9305 5

原创 new和malloc的区别

  最近在复习C++ 的时候看到了这个问题,然后在网上查阅了一些资料,发现这个问题还是个十分易考的面试题,这里就给大家总结了一下,这两套东西到底是有什么区别。  首先要明白的是我们的new是运算符,他并不是一个函数,delete也是,而我们的malloc是库函数,他们都可以用来申请内存和释放内存,从表面看来既然都是一样的,那为啥C++里边要再弄一个new而不是直接用以前C中的malloc,是因...

2018-09-05 19:49:34 463

原创 剑指offer--数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。class Solution {public:int MoreThanHalfNum_Solution(vector<int> numbers) {...

2018-09-05 18:54:46 686

原创 Ubuntu不能链接xshell(没有ssh服务)

     最近学习C++服务器的时候需要用的ubuntu系统,虽然之前也有ubuntu系统但是没有用过xshell这次链接的时候发现ubuntu不能直接连接Xshell提示连接失败。查了查,然后在ubuntu中看了一下发现可能是ubuntu中不会自带ssh服务通过ps -e |grep ssh指令来查看,这里截图里边我打错了,之后又纠正过来了,如果你打出来上边你的命令发现没有任何反...

2018-09-04 23:22:36 931

原创 剑指offer--对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}}...

2018-09-04 19:58:36 215

原创 VMware虚拟机(Linux)与windows传输文件

 VMware虚拟机和Windows传输文件的方式;   这里有很多种传输文件的方式,比如安装VMware tools,xshell里边也有支持我们机型文件传输的插件,但是我们可以在Linux下安装一个小插件就可以实现虚拟机和windows下进行文件传输。lrzsz是一款在linux里可代替ftp上传和下载的程序,这里我已经安装过了就不给大家演示安装了。   Centos可以输入指令...

2018-09-03 11:39:11 10136 2

空空如也

空空如也

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

TA关注的人

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