自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (1)
  • 收藏
  • 关注

原创 lrzsz工具:sz发送文件到本地失败的问题

这里写自定义目录标题lszrz工具新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入lszrz工具你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读

2021-05-09 17:07:16 2839

原创 Linux下如何定位程序运行段错误位置-core文件

core文件core文件是程序在运行过程中出现段错误退出时,用于保存让gdb调试的堆栈错误信息的文件某些Linux系统下默认是没有设置core文件的,需要我们查看一下;如果查看到core为0字节的话,就说明系统没有设置,那么我们要在使用之前进行设置,假设我们设置为1024字节ulimit -c -c表示的就是core文件ulimit -c 1024 将core的文件大小设为1024字节 unlimited就是无限大当出现段错误的时候,我们的程序执行路径下就会生成一个core文件,然

2021-03-09 21:39:55 2042

原创 如何在vs2013中打开内存查看窗口

文章讲述了如何在vs2013中如何打开调试窗口和内存查看窗口

2020-03-02 14:49:33 7247

原创 runtime error: member access within misaligned address 0xbebebebebebebebe for type 'struct TreeNode'

runtime error: member access within misaligned address 0xbebebebebebebebe for type 'struct TreeNode', which requires 8 byte alignment (solution.cpp)LeetCode199

2020-02-08 17:33:52 9508 2

原创 c++函数模板

在c语言中,我们能够通过预处理宏替换来处理进行一些对类型要求不强的操作的,比如返回同类型的两个数中较大值就可以使用宏定义,从而可以实现我们对不同内置类型的数据大小比较。当然这我们知道这是不安全的,我们知道宏是在预编译时期进行的简单替换,而不是函数那样通过参数传递调用。例如:#include <iostream> using namespace std; #defi...

2020-01-30 14:02:41 209

原创 c++内存管理new和delete运算符

我们先了解计算机中的内存在使用中被分为下面几部分:内存布局栈:也叫堆栈,系统自动分配的空间,只要不特殊声明,系统自动在栈上给变量和函数分配内存。栈是自顶向下增长的堆:可使用动态内存分配的方式申请堆空间,当数据量较大时,栈空间有限,可在堆上申请空间存放;用完需要手动释放!常量区:用于存放程序中使用到的常量代码区:存放可执行代码和只读常量作为开发者,我们在程序中只需要管理的就是内存中的堆...

2020-01-18 11:49:03 255

原创 c++函数的缺省参数及函数重载

函数的缺省参数函数在定义或者声明的时候,将参数列表中的某一项或某几项参数给定为默认值,在后续的调用过程中我们可以不给缺省的形参传递实参数据,这样该函数会使用我们在定义或者声明时使用的默认参数。当然你可以传入你自己实际需要的参数这样函数内部就会使用你传入的参数。注意:函数的缺省参数在定义或者声明时给出,且只在一处给出,声明中给了之后就不能在定义中再次给默认参数。缺省参数在参数列表中的位置必...

2020-01-16 11:33:48 948

原创 c++名字空间

文章目录名字空间定义名字空间可以重名名字空间可以嵌套名字空间的使用c++常用于做一些大型项目,这其中会有不同公司的开发人员参与编写,有时还会借助一些第三方库,其中难免会出现标识符命名冲突,为避免这种冲突的出现。c++的设计者设计了名字空间来避免这种冲突,将自己的命名空间使用**namespace xxx{}**包含起来,形成自己的作用域,这样就不会和别人的发生名字冲突。那么名字空间是怎样保证不...

2020-01-10 15:36:19 231

原创 8086CPU指令系统--汇编语言逻辑运算和移位操作指令

一、逻辑运算指令1、逻辑‘与’指令 AND指令格式:AND OPRD1,OPRD2 ;OPRD1←OPRD1^OPRD2功能:AND指令使源操作数和目标操作数按bit位相“与”,结果送回目标操作数。AND中的“与”’特性通常可将指定位清0常用作:实现两个数 的按位与使目标操作数中某些位保持不变,把其他位清‘0’使操作数不变,但影响其他6个状态标志位,并使CF=O...

2020-01-08 16:10:14 5330

原创 解决c++11特性unordered_map在g++4.8版本编译不通过问题

今天在Linux编写了一段小程序,但是编译始终运行不通过,开始以为是我的gcc编译器版本过低不支持c++11标准,结果退出去gcc -v查看发现自己版本为4.8.5,(4.7之后的版本均支持),那么为什么会编译不通过呢?最后才知道,在编译时需要加上-std=c++11选项。再次编译之后就ok了g++ -std=c++11 main.cpp -o main大家在编译c++11标准的代码...

2020-01-04 16:16:21 1423 1

原创 8086CPU指令系统--汇编语言算术运算指令(ADD/ADC、SUB/SBB、INC/DEC、CMP、MUL、DIV)

目录1.加法指令ADD/ADC、INC普通加法指令ADD带进位加法指令ADC加1指令INC2.减法指令SUB/SBB不考虑借位减法指令SUB考虑借位的减法指令SBB减1指令DEC比较指令CMP求补指令NEG3.乘法指令MUL4.除法指令DIV1.加法指令ADD/ADC、INC普通加法指令ADD指令格式:ADD OPRD1,OPRD2...

2019-12-26 17:19:38 9358

原创 8086CPU指令系统--汇编语言数据转送指令(MOV,PUSH/POP,LEA)

目录通用的数据转送指令MOV堆栈操作指令PUSH/POP地址传送指令LEA、LDS/LESLDS/LES为远地址传送指令输入/输出数据传送指令通用的数据转送指令MOV指令格式:MOV dest,src ;dest←src功能:将源操作数的内容送至目的操作数。MOV指令对各标志位无影响。在MOV指令中,两个操作数可以是字,也可以是字节,但两者必须等长。...

2019-12-25 20:49:02 4348

原创 操作系统避免死锁——银行家算法实现

银行家算法是针对操作系统资源分配中可能导致的死锁问题,主要是通过对资源请求满足之后的状态检测,如果满足请求之后系统状态安全,则说明不会产生死锁,可以满足申请;如果满足之后的状态不安全,则有可能会形成死锁,故而不能满足请求。从而达到避免死锁的发生。死锁检测需要使用安全性算法,该算法只用于对当前状态是否为死锁进行检测,这里用于在银行家算法中对于满足请求之后的系统状态进行检测。其中,死锁的检测方法还...

2019-12-25 16:32:34 1407 1

原创 8086CPU的几种数据寻址方式

1.立即数寻址、寄存器寻址立即数寻址就是立即数存在于指令中,与指令一同存储在代码区。MOV AX,1234HMOV [2100H],1234H寄存器寻址是操作数在寄存器中,直接对寄存器进行读取,不用通过访问总线,是效率最高的数据读取方式。MOV AX,CXINC CX2.直接寻址、寄存器间接寻址直接寻址就是数据在存储器中,有效地址在包含在指令中。一般默认段为DS,也...

2019-12-25 15:59:56 3491

原创 内存分配算法实现---首次适应、循环首次适应、最好、最坏分配算法

本次实现均是基于顺序搜索的动态分区分配算法,为实现动态分配,通常将系统中的空闲分区链接成一个链,所谓顺序搜索是指一次搜索空闲分区链上的空闲分区,去寻找一个其大小能满足要求的分区。基于顺序搜索的动态分区分配算法有如下四种:目录1.首次适应算法(first Fit,FF)流程图:2.循环首次适用算法(next fit ,NF)流程图:3.最佳适应算法(best fit ,...

2019-12-24 15:43:01 19923 5

原创 进程调度算法模拟-FCFS、SJF、RR

目录1.先到先服务进程算法流程图:2.短作业优先进程算法流程图:3.时间片轮转算法流程图:4.优先级调度算法背景:在多道批操作系统中,内存中同时驻留多道作业,那么多个进程有可能同时请求分配计算机资源;对处理器而言,可分配的资源是处理机,而分配途径是进程调度。为了满足用户需求,功能调度必须满足多个目标,包括公平、任何进程都不会饿死、有效使用处理机时间和低开销。在其中的...

2019-12-13 10:22:53 6966 2

原创 Linux文件操作命令实操

在家目录下创建 ~/workspace/cmd 目录以及 ~/workspace/tmp/test 目录(什么是家目录?)首先可以先切换到根目录,再创建workspace目录,然后进入到目录里之后再分别创建cmd和test文件。[test@localhost ~]$ cd ~[test@localhost ~]$ mkdir workspace[test@localhost ~]$ c...

2019-12-12 12:38:14 274

原创 进程和进程控制块(PCB)

目录进程概念进程的特征进程状态进程控制块进程概念是程序的一次执行过程,是系统进行资源分配和处理机调度的一个独立单位。是一个运行中程序的描述,通过描述信息中的内存指针可以找到内存中运行的程序代码及数据,并且通过上下文数据可以保存程序调度切换时正在处理的数据,以及通过程序计数器保存进程切换时程序即将运行的一条指令……等,通过这些描述信息控制一个程序的运行。因此对于操作系统来...

2019-11-14 10:26:25 2431

原创 结构体内存对齐 和 #pragma pack()

为了保证计算机读取数据的高效性,编译器通常在结构体的成员数据进行内存对齐,使每一个成员变量都对齐在自然边界上,同时也有一定的空间牺牲。我们重点考虑成员变量是如何对齐的:文章目录对齐规则(偏移规则)#pragma pack()改变默认对齐实例理解结构体嵌套时对齐对齐规则(偏移规则)每个成员按照其类型的对齐参数(通常是这个类型的大小)和指定对齐参数中的较小的一个对齐,即min(n,sizeo...

2019-11-13 13:45:12 2684

原创 Linux文件操作命令总结

上次学习了Linux文件命令-----mkdir touch创建命令之后,博主感建议要掌握这些命令的使用应该加强练习,不会就查,不需要强行记忆。这篇博文,将本人这一时间段在学习Linux文件操作命令做以总结,以便后续查看。touch+filename:创建新文件mkdir+mkbame:创建目录(文件夹)创建多路径目录:mkdir -p bb/cc bb/dd //创建了一个bb目...

2019-11-06 15:52:31 222

原创 二叉树的层序及非递归版前中后序遍历

二叉树的前中后序可以采用

2019-10-29 11:15:52 160

原创 c语言实现二叉树的创建及遍历

二叉树:一种常见的树形结构,每个节点中包含数据域和两个指针域,分别指向左右子树。特点:每个节点最多有两颗子树,且有左右之分。即其中不存在度大于2的节点第i层至多有2^i-1个节点n个节点的树一共有2n个指针域,其中有2n+1个空指针域,因为有2n-1个指向(2n-1个节点有父节点)除此之外还有特殊的二叉树:满二叉树(树中不存在只有一个孩子的父节点,每一层的节点数都为2^i-1)、完全二...

2019-10-25 12:34:50 1004

原创 LeetCode:最小栈的实现

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minS...

2019-10-13 23:18:12 157

原创 用队列实现栈

题目描述:使用队列实现栈的下列操作push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者...

2019-10-12 22:36:57 154

原创 c语言实现数据结构--队列

队列是一种常见的数据结构,具有先进先出的特点。其中内部有一个首节点和尾节点,分别称为队首和队尾。今天便实现一下无头不循环队列。代码实现:/*这时queue.h文件包括了queue各种操作函数的声明和queueNode及queue的结构声明*/#pragma once#ifndef _QUEUE_H_#define _QUEUE_H_typedef int QUDataType;...

2019-10-11 23:37:13 194

原创 用栈实现一个队列

题目描述:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop...

2019-10-10 17:23:06 814

原创 Linux文件命令-----mkdir touch创建命令

理论篇1.mkdir命令用来创建一个目录(文件夹)用法:mkdir+filename [filename2] ……[]内容表示可选也可用来创建多个文件夹,创建的文件名之间用空格隔开。mkdir命令后加**-p**也可以用来创建多路径目录:例如:mkdir -p bb/cc bb/dd 就创建l一个bb目录,并在bb目录下面创建了一个cc的新目录和dd的新目录2.touch用来创...

2019-10-09 23:45:46 536

原创 c语言实现数据结构--栈

栈是一种特殊的线性表,只能在一端进行插入删除操作,具有先进后出的特点。进行插入删除操作的一端称为栈顶,另一端称为栈底!接下来就用C语言来实现一下栈的基本操作:代码实现:/*stack.h文件,包含了栈定义和操作函数的声明。*/#pragma once#ifndef _STACK_H_#define _STACK_H_#define STACK_SIZE 20typedef ...

2019-10-08 09:47:25 173

原创 求数组最大子序和问题--动态规划和分治思想实现

求给定数组的最大子序和题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。来源:力扣(LeetCode)链接:...

2019-10-03 21:16:21 2454

原创 动态规划算法(Dynamic Programming):斐波那契数和爬楼梯问题

动态规划中三个重要的概念:【最优子结构】、【边界】、【状态转移公式】斐波那锲数问题:爬楼梯:#include<iostream>#include<vector>#include<map>using namespace std;int climbStairs(int n){ if (n <= 2) { return n; } re...

2019-10-02 21:52:33 2482

原创 8086/8088CPU内部控制寄存器

控制存器有IP和FLAGSFLAGS称为标志寄存器或程序状态寄存器(PSW),虽然有16位,但是只使用其中9位(标志寄存器中的空位有什么作用吗),其中包括6个状态标志位和3个控制标志6个状态标记位状态标记符记录了算术逻辑运算的结果特征,如溢出、进位等CF进位标志位PF奇偶标志位AF辅助进位标志位ZF零标志位SF符号标志位OF溢出标志位...

2019-09-25 23:03:14 1080

原创 链表常见算法题四:链表相交及成环问题 返回两个链表相交节点 判断链表是否成环 返回链表的入环节点

题目描述:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:t...

2019-09-20 22:24:28 227

原创 链表常见算法题三:返回中间节点(快慢指针) 返回到处第k个节点

题目描述:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans....

2019-09-17 17:06:06 2202

原创 链表常见算法题一:实现两个链表的并集、合并两个有序链表

LeetCode题目描述:合并两个有序链表将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)思路分析:用三个指针分别记录新合并链表的尾结点和未合并链表的头结点,每次在未合并链表中选...

2019-09-06 13:15:58 2079

原创 链表常见算法题二:删除定值节点,删除重复元素的所有节点、反转链表

LeetCode题目描述:移除链表元素删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解题思路:首先保证链表不为空(代码3-6行),由于链表首元素未判断(题目给的链表为不带头结点链表),因此第一步先找到到第一个数据不等于val的节点...

2019-09-04 11:44:13 2332 1

原创 c语言实现数据结构--链表

链表存储结构:每个节点包含两个数据域,一个用来存放数据,另一个数据域用来保存下一个节点的地址(指针 )。这样就将一些物理上不连续的内存组成链式存储结构。也称单链表。代码实现:初始化链表void ListInit(LinkList*list){ assert(list != NULL); *list = (ListNode*)malloc(sizeof(ListNode)); if ...

2019-09-03 23:32:16 178

原创 c语言实现顺序表的基本操作

顺序表就是用一段地址连续的存储单元依次存储数据元素,其物理的相连的。是不是很类似数组的结构呢?其优点就是可以通过下标直接随机访问。代码实现:顺序表结构封装和函数声明在List.h中,我实现的是动态开辟的,其中顺序表中的结构封装有data作为数据数组,length表示顺序表空间,size为元素个数;#ifndef _LIST_H_#define _LIST_H_/*动态分配线性表...

2019-09-01 23:08:23 474

原创 快速排序三种实现和非递归实现及其优化

一、快速排序实现思想:是每次制定一个基准值,再一次排序后将除基准值之外的数据分为两部分,一边全部小于等于,另一边均大于等于。然后再对左右各部分重新寻找基准值排序。二、快速排序的执行步骤:选取基准值 左右分别遍历,找出位置有误的元素后交换 重复1.2步骤,直至遍历完三、实现方法:基础实现:对递归进来数组,随机选一个基准值,我用的是第一个数据作为。再左右遍历,遇到不符合的数就...

2019-08-27 23:43:39 416

原创 基础排序算法及代码实现

交换类插入排序类选择排序类

2019-08-25 17:38:46 191

原创 typedef 和 #define的用法和区别

typedef 和#define 都可以用来给类型或变量取别名,但两者仍有很大区别:处理阶段不同:define是预处理,在比编译预处理时进行替换,但不做正确性检查,不管含义是否正确,只做简单的替换,只有在后面的编译阶段才可能发现错误。typedef 是c语言中的关键字,在编译阶段检查处理的。它可在自己的作用域内对已存在类型取别名,但不可在函数内#define是预处理指令,在编译预处理生成.i...

2019-08-23 09:29:54 226

Xshell_6.0.exe

Xshell用于连接window和linux虚拟机,是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接。在SSH隧道机制中,Xshell支持端口转发功能,无需修改任何程序,它可以使所有的TCP / IP应用程序共享一个安全的连接。

2019-04-12

空空如也

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

TA关注的人

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