自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 重载、重写和隐藏三者的区别

C++知识总结目录索引1. 重载  重载:同一作用域内被声明的几个具有不同参数列表(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。class A{public: void Swap(int* a, int* b); //overload int Swap(long* a, long* b); //...

2018-04-30 17:16:49 2177

原创 《剑指offer》面试题57:和为s的两个数字(扩展)

更多剑指offer面试习题请点击:《剑指offer》(第二版)题集目录索引题目1:和为s的两个数字  输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。解题思路:   用start和end来做标记,开始时分别标记数组的首、尾元素。比较这两个数之和sum与s的大小,如果sum<s,那么让start++,标...

2018-04-30 12:07:13 306

原创 Linux —— 进程间通信之消息队列

1. 消息队列基本概念1.1 什么是消息队列?  消息队列本质是一个队列(具有先进先出的特性),队列中存放的元素是一个个消息缓存块(message)。 消息缓冲块:   一种自定义数据结构(可以类比链表中的节点),用于存储信息,进程之间通信的方法之一,结构如下: struct msgbuf{ long channel; //通道号 char mtext[100...

2018-04-29 13:18:49 485

原创 C++ —— 经典面试题

C++知识总结目录索引1. 哪些成员函数不能被继承。  C++中,并不是所有的成员函数都能被子类继承,有三类成员函数不能被子类继承,分别是:构造函数(包括拷贝构造)、析构函数、赋值运算符重载函数。1. 构造函数  构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为...

2018-04-29 09:00:20 4798

原创 Linux —— 进程间通信之管道

1. 匿名管道  这里说的管道是指匿名管道(无名管道),是 UNIX 系统IPC最古老的形式。1. 管道的特点:其本质是一个伪文件(实为内核缓冲区)。它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。它只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。它可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write 等函数。但是它...

2018-04-25 15:25:27 256

原创 Linux —— 死锁的产生、预防、避免、检测与解除

1. 死锁的基本概念1. 死锁的定义   所谓的死锁是指在多道程序系统中,一组进程中的每个进程都无限期地等待被该组进程中的另一个进程所占有且永远不会被释放的资源,这种现象称系统处于死锁状态,简称死锁。处于死锁状态的进程成为死锁进程。   系统发生死锁会大量浪费系统资源甚至会导致整个系统崩溃。2. 产生死锁的原因  产生死锁的原因主要有两个:一是竞争资源,系统提供的资源有...

2018-04-23 21:26:39 2130

原创 C++——多态

C++知识总结目录索引1. 何为多态  多态一词最初来源于希腊语,意思是具有多种形式或形态的情形,在C++中是指同样的消息被不同类型的对象接收时导致不同的行为,这里讲的消息就是指对象的成员函数的调用,而不同的行为是指不同的实现,也就是调用了不同的函数。简而言之就是“一种接口,多种实现(方法)”。   2. 多态的分类多态可分为静态多态和动态多态,具体的分类情况如下:...

2018-04-23 16:56:14 1797

原创 《剑指offer》面试题24:反转链表

更多剑指offer面试习题请点击:《剑指offer》(第二版)习题目录索引题目:    定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。结点定义如下:typedef struct ListNode{ int m_nValue; struct ListNode* m_pNext;}ListNode;< code >ListNo...

2018-04-20 15:45:22 939

转载 转发:PCB进程控制块

文字转自:https://blog.csdn.net/w_y_x_y/article/details/80016975 想要有顺序地学习Linux,入口在这里哦:Linux:目录索引PCB:进程控制块0.PCB是干什么的? 学了操作系统后,我们都知道操作系统要想管理一个对象,它不是直接进行管理的,...

2018-04-20 15:04:25 426

原创 C++——实现Vector&List

1. Vector< Vector.h >#ifndef __VECTOR_H__#define __VECTOR_H__#include <iostream>#include <stdlib.h>#include <string.h>typedef int DataType;class Vector{public: ...

2018-04-20 13:35:43 404

原创 《剑指offer》面试题06:从尾到头打印链表

更多剑指offer面试习题请点击:《剑指offer》(第二版)题集目录索引题目:   输入一个链表的头结点,从尾到头反过来打印出每个结点的值。解题思路:   关于这题我们可以用三种方法解决:   1. 栈   2. 递归   3. 循环< code1_stack>void PrintListReversingly_Iteratively(ListNode*...

2018-04-18 16:23:12 405 2

原创 《剑指offer》面试题09:用两个栈实现一个队列

更多剑指offer面试习题请点击:《剑指offer》(第二版)题集目录索引题目:   用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。解题思路:   使用两个栈:s1、s2,所有的压栈Push操作全部在s1完成。关于出栈Pop操作则要分情况讨论:   1. 如果s2为空,则...

2018-04-18 15:22:44 288

原创 《剑指offer》面试题18:删除链表的节点(扩展)

更多剑指offer习题请点击:《剑指offer》(第二版)题集目录索引1. 题目一:在 O(1)O(1)O(1) 时间内删除链表节点  给定单向链表的头指针和一个节点指针,定义一个函数在 O(1)O(1)O(1) 时间内删除该节点。链表节点与函数定义如下:typedef struct ListNode{ int m_nValue; struct ListNod...

2018-04-16 20:34:17 568

原创 《剑指offer》面试题01:赋值运算符函数

更多剑指offer习题请点击:《剑指offer》(第二版)题集目录索引题目:   如下为类型CMyString的声明,请为该类型添加赋值运算符函数。class CMyString{public: CMyString(char* pData = nullptr); CMyString(const CMyString& str); ~CMyString...

2018-04-16 17:01:19 509

原创 C++ —— 继承

C++知识总结目录索引1. 三种继承关系public、protected和private  在学习类的时候我们便接触了这三个关键字,当时它们是作为类的成员访问限定符,在继承当中也要用到这三个关键字,此时它们表示的是三种继承方式。对于刚学习继承的人来说,肯定都会有一个疑惑——为什么有了private还有用proected的?它俩有什么区别?含有private成员的类:其无论通过哪种继承...

2018-04-15 17:46:17 391

原创 《剑指offer》面试题08:二叉树的下一个节点

更多剑指offer习题请点击:《剑指offer》(第二版)题集目录索引题目:   给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针。解题思路:   面对这种看似复杂无从下手的题,我们不应急着写代码,而是先捋清除思路,列出可能出现的所有情况,然后再看有哪些情况可以合并,这样可以尽可能的避免出错...

2018-04-13 23:29:21 329

原创 《剑指offer》面试题07:重建二叉树

更多剑指offer面试习题请点击: 《剑指offer》(第二版)题集目录索引题目:   输入某二叉树的前序遍历和中序遍历结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{ 1, 2, 4, 7, 3, 5, 6, 8 }和中序遍历序列{ 4, 7, 2, 1, 5, 3, 8, 6 },则重建的二叉树如图所示: 解题思路:   我...

2018-04-11 18:36:25 371

原创 C++——实现String类(写时拷贝)

< String.h>#ifndef __STRING_H__#define __STRING_H__#include <iostream>#include <assert.h>class String{public: String(const char* str = ""); //构造函数 String(cons...

2018-04-09 16:52:15 383

原创 Linux——进程控制

1.创建进程创建进程的步骤:给新建的进程分配一个进程标识符,在内核中创建PCB。复制父进程的环境。给子进程分配资源、栈、堆、代码、数据等。复制父进程的地址空间内容到子进程的地址空间。将进程置为就绪状态,放到就绪队列。创建进程一般都是使用fork()函数,下面先简单了解一下这个函数。头文件: #include<unistd.h> /*#包含<unist...

2018-04-06 18:19:42 418

原创 C++——new/delete和new[]/delete[]

C++知识总结目录索引1. new/delete1. 对于简单数据类型这里的简单数据类型指的是内置类型和不需要构造函数的自定义类型。 例如:int* a = new int; 这里我们可以查看new的源代码:void *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc) { ...

2018-04-05 15:15:49 274

空空如也

空空如也

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

TA关注的人

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