- 博客(22)
- 收藏
- 关注
原创 linux目录索引
linux:环境的简单配置linux:基本命令linux:进程linux:进程控制linux:进程替换linux:模拟实现shelllinux:进程间通信—-消息队列linux:进程间通信—–管道linux:进程间通信—-共享内存linux:进程间通信—-信号量...
2018-04-20 15:21:10 2989 3
原创 C++:继承和多态的对象模型
更多C++知识:c++目录索引前言之前两篇博客梳理了继承和多态基本的知识点,下来总结一下C++的对象模型;前两篇博客中提到的继承有单继承,多继承,菱形继承,虚继承,虚基表,虚函数,多态等概念,对于这些继承和多态的对象模型,我们逐步进行深究,在深究之前,先来熟悉一下虚函数表虚函数表1. 概念虚函数表是一种数据结构,其为指针数组,数组当中存放的是虚函数的地址(注:不是真...
2018-04-29 14:25:45 302 1
原创 C++知识点:虚函数、多态
更多知识点:C++知识点目录索引接上一篇的c++知识点–继承虚函数概念虚函数是指类的成员函数前加上virtual 关键字,此成员函数称之为虚函数虚函数的作用子类和父类的虚函数构成重写,可实现多态虚函数重写上一篇继承中提到重写的概念,当子类和父类定义了一个和父类完全相同的虚函数,则称子类的虚函数重写(覆盖)了父类的虚函数;特殊情况:协变也可构成重写(注:协变...
2018-04-29 11:11:52 385
原创 进程间通信-----消息队列
更多linux知识:linux目录索引1. 什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。个人理解:消息队列就是一个数据结构(也就是上面提到的数据块),好比是一个箱子,用来存消息,例如:进程一想要给进程二发送一个消息,就将消息装进箱子里面,进程二想要看消息是什么,就从这个...
2018-04-25 17:28:39 417
原创 c++知识点----深浅拷贝
更多C++知识点:C++目录索引浅拷贝概念:浅拷贝也称位拷贝,是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同)。对其中任何一个对象的改动都会影响另外一个对象。浅拷贝的问题当多个对象共用同一块内存,某一对象使用完毕后会进行析构,其他对象再次使用这块空间,发生非法访问多个对象,必定析构多次,但只有一块内存,导致非法析构 注意 当在一个自定义的类中,没有...
2018-04-24 08:56:40 294
原创 面试题:C语言实现继承和多态
更多C++知识:C++目录索引 题目:利用C语言实现C++里面的继承和多态特性先来看看C++里面的继承和多态:代码:class A{public: virtual void fun() { printf("A::fun()\n"); } int _a;};class B :public A//B继承A{pu...
2018-04-23 17:41:48 438
原创 面试题:类和继承
更多c++知识:c++目录索引1. 实现一个不能被继承的类 思路: 子类继承父类,子类的构造函数就是合成的;当子类创建对象时,先调用父类的构造函数,在调用自己的构造函数,故此不能继承,将父类的构造函数设为私有成员,这样子类就不能访问,不能创建对象,因此也就不能继承代码:class AA{public: static AA* GetObject() { retu
2018-04-23 17:11:31 312
原创 C++实现顺序表和链表
更多C++知识:c++目录索引顺序表:Vector.h#pragma oncetypedef int DataType;class Vector{public: Vector();//构造 Vector( const Vector& v);//拷贝构造 Vector& operator=(const Vector& v...
2018-04-22 13:24:07 425
原创 linux:基础I/O
更多知识点:linux目录索引系统文件IO#include<fcntl.h>int open(const char* pathname,int flags);int open(const char* pathname,int flags,mode_t mode);pathname:要打开或者创建的目标文件falgs: O_RDONLY:只读 O_WRONLY:只写 O_
2018-04-21 22:27:56 193 2
原创 模拟实现shell-----输出重定向
更多linux知识:linux目录索引模拟实现shell思路:读取命令行的字符串,将一整句字符串以空格为分隔符分成若干个子串,再将每个子串的地址保存在一个数组argv中 使用fork函数创建一个子进程(fork函数),在子进程中将数组argv中存储的字符串指针传参给进程控制函数execvp,执行相应文件名的文件(进程); 父进程等待子进程退出,并且回收子进程,防止子进程和...
2018-04-20 16:16:29 1220 2
原创 linux:进程替换
更多知识点:linux目录索引概念 进程替换是指把当前进程替换为一个新的程序。替换进程使用 exec 系列函数。进程被exec 替换后,运行中的程序就开始执行由 exec 指定的新的可执行程序中的代码。新进程的 PID、 PPID 与原进程完全一样。 并且, exec 一般是不会返回的,因为原进程已经被完全替换掉了,除非发生错误,出错时, exec 返回-1。进程替换的原...
2018-04-20 16:07:49 629
原创 剑指offer---018(删除链表的节点)
更多题目可点链接:《 剑指offer》 目录索引题目一给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。思路:时间复杂度为O(1),如果删除的非尾节点,采用替换法删除如果是尾节点,采用一般删除替换法删除的图解:https://blog.csdn.net/zhangye3017/article/details/78933001代码:#include<iostream>u
2018-04-19 16:12:49 356 1
原创 剑指offer----001(赋值运算符重载函数)
更多题目请点链接:《 剑指offer》 目录索引题目描述:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。#include<cstring>#include<cstdio>class CMyString{public: CMyString(char* pData = nullptr); CMyString(const CMyString& str);
2018-04-19 14:52:43 553
原创 剑指offer---009(两个栈实现一个队列)
题目描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。思路:栈具有特点后进先出特点,队列具有先进先出的特点,两个栈实现队列,满足以下条件:入数据时,始终保证栈为空出数据时,取非空栈的栈顶元素具体过程可点链接:https://blog.csdn.net/zhangye3017/articl
2018-04-18 19:57:40 213
原创 剑指offer----007(重建二叉树)
更多题目:《 剑指offer》 目录索引问题描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输 入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1, 2, 4, 7, 3, 5, 6, 8}和中序遍历序列{4, 7, 2, 1, 5, 3, 8, 6},则重建二叉树并输出它的头结点。思路:前序遍历的第一个节点为二叉树的头节点根据头节点在中序遍历中找出头
2018-04-18 19:36:49 262
原创 C++知识点----继承
更多C++知识:c++目录索引1. 继承1.1 继承概念 继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享共有的东西,实现自己本质的东西。1. 2 访问限定符 && 继承关系 private(私有):从字面上来看,私有属于个人的,不会让其他人使用;那么在父类里,成员为私有限定,意味着不管是什么继承,这个成员就是不让你看...
2018-04-16 18:05:27 494
原创 剑指offer---006(从尾到头打印单链表)
更多题目可点链接:《剑指offer》目录索引题目描述输入一个链表的头结点,从尾到头反过来打印出每个结点的值。思路:递归打印非递归借助栈具体过程可点链接:(http://blog.csdn.net/zhangye3017/article/details/78933001)代码:typedef struct SListNode{ int _data;...
2018-04-12 18:25:51 214
原创 剑指offer---003(找出数组中重复出现的数字)
更多题目请点链接:《剑指offer》目录索引1. 找出数组中出现的数字问题描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了, 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3}, 那么对应的输出是重复的数字2或者3。思路数组...
2018-04-11 20:14:10 382
原创 剑指offer--018(树的子结构)
题目描述输入两棵树A和B,判断B是不是A的子结构。思路:如果A和B两个树中任意一个树为空树,则一定没有子结构采用递归思想,将二叉树划分为根节点,左子树和右子树如果根节点相同,比较左右子树是否相等如果根节点不相同,去左子树中进行比较如果在左子树中没有找到,去右子树中进行比较代码: typedef struct BTreeNode{ int _data; struct B
2018-04-11 18:00:10 254
原创 linux知识点----进程控制
更多知识点:linux目录索引进程创建———fork()函数: pid_t fork(void)说明:父进程创建子进程后,父子进程交替运行运行过程中,子进程死亡,父进程存在,子进程称为僵尸进程,且僵尸进程不可人为杀死,必须等到父进程结束后,才会将其回收运行过程中,父进程死亡,子进程存在,子进程称为孤儿进程,由1号进程托管,死亡后由1号进程负责回收fork()函数返...
2018-04-08 11:51:15 560
原创 linux知识点----进程
更多知识点:linux目录索引进程概念从用户角度:进程就是程序的一次动态执行过程从操作系统角度:操作系统分配内存,CPU时间等系统资源的基本单位特点1.每一个进程都有自己独立的虚拟地址空间和进程状态2.进程是分配资源的最小单位(基本单位)进程和程序的区别和联系联系:1.程序=文件(静态的可执行文件)2.进程=执行中的程序=程序+执行状态3.同一个程...
2018-04-06 16:16:10 630
原创 linux输出彩色进度条
准备:在这之前需要知道换行和回车的区别,即\r和\n。在linux中 \r 让光标回到当前行的开始,\n让光标从下一行开始。还需要知道linux中 缓冲区写满后才会输出。实现彩色进度条,必然要清楚色彩的变化:printf("\033[3%im[%-100s][%d%%][%c]\033[0m\r",i%8,bar,i,lable[i%4]);\033[33m变色内容\033[0m第一个\
2018-04-06 15:41:29 248
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人