自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅谈多态

1.什么是多态?     就是不同的对象去完成不同的行为,就会产生不同的结果。2.重载,重写(覆盖),重定义(隐藏)的区别?     重载:(1)在同一作用域;                (2)只要函数名相同,参数不同的两个函数就构成重载;     重写(覆盖):                (1)两个函数分别在基类和派生类的作用域;               ...

2019-01-07 17:03:12 186

原创 继承总结

一、概念:       继承就是在保持原有类特性的基础上进行扩展,增加功能,是类设计层次的复用。二、继承方式的特点 总结:1.基类的protected成员,不能在类外访问,但能在派生类中访问;2.使用class时默认是私有继承,struct默认是公有继承;3.绝大多数使用的都是public继承,几乎不使用protected/private继承,   protected/...

2019-01-02 22:20:24 273

原创 Stack_Queue_OJ题

1.逆波兰表达式#include <iostream>#include <vector>#include <string>#include <stack>using namespace std;int evalRPN(vector<string>& tokens) { stack<int> num;...

2018-12-16 14:24:41 222

原创 VectorOJ题

1.电话字符组合#include <iostream>#include <vector>using namespace std;string letterMap[10] = { "", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", &

2018-12-08 16:48:58 260

原创 Linux下gdb调试

链接:https://blog.csdn.net/qq_35116371/article/details/734799501.gdb调试单进程步骤:1.先打断点,再run/r让程序跑起来,它会到断点处停下来,然后再执行一系列命令;不然的话,程序就一直跑完了。strat   //运行到mian函数的第一条语句处2.命令list/l(1)gdb  -q  文件名(2...

2018-11-24 17:19:10 2611

原创 信号操作总结

信号的基本概念** 为啥要有信号** 信号概念:Linux系统响应某些状况而产生的事件,进程在接受到信号后采取相应的动作。 说白了,操作系统要管理进程进程在受到某些信号的影响后,也会做出相应的动作,而信号有些是人为的,有些是系统为的。一、信号产生的几种方法方法示例终端按键 产生Ctrl-C,Ctrl-Z等等组合键硬件异常产生进程执行除0,野指针等导...

2018-11-24 10:32:19 387

原创 可重入函数,SIGCHILD信号

一、 可重入函数概念:一个函数被多个执行流进入,不会出错,这就叫可重入函数;否则,就叫不可充入函数。如果一个函数只访问自己的局部变量或参数,当有多个执行流执行时,就不会互相影响。...

2018-11-24 10:31:48 495

原创 Template入门

原因:        在没有模板之前,假如我们要实现一个交换函数,当要交换的数据类型不同时,就需要多个不同类型的函数来完成操作。代码完全一样,就是类型不同,苦!void Swap1(int& a, int& b){ int tmp = a; a = b; b = tmp;}void Swap1(double&a...

2018-11-13 16:57:59 203

原创 进程间通信(下)命令行操作篇

1.命令:ipcs  -q    //查看当前存在的消息队列ipcs  -m   //查看当前存在的共享内存块ipcs  -s    //查看当前存在的信号量数组ipcrm  -q   msqid  //删除当前存在的消息队列ipcrm  -m   shmid //删除当前存在的共享内存块ipcrm  -s  semid //删除当前存在的信号量数组 2.同步与...

2018-11-05 23:15:24 491

原创 进程间通信(上)基础函数篇

一、匿名管道从一个进程连接到另一个进程的一个数据流称为一个管道#include <unistd.h>功能:创建一个无名管道int  pipe(int  fd[2])参数:fd:文件描述符数组,其中fd[0]表示读端,fd[1]表示写端返回值:成功返回0,失败返回-1其内部操作如下图所示 管道读写规则:1.若read端文件描述符被关了,则...

2018-11-05 21:42:31 9262 1

原创 C++内存管理

一、C/C++内存分段   32位进程虚拟地址空间为4GB 注意:这些只是进程虚拟地址空间,系统会通过页表映射到物理内存中二、new和delete的基本操作1.对内置类型操作int main(){ int* p1=new int; //创建一个int大小的空间 int* p2=new int(10); //创建一个int大小的空间,并...

2018-11-05 21:42:10 161

原创 类和对象(下)

一、再谈构造函数1.初始化列表       以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个“成员变量”后边跟一个放在括号中的初始值或表达式class Date{public: Date(int year,int month,int day) :_year(year) ,_month(month) ,_day(day...

2018-10-29 20:37:35 182

原创 类和对象(中)

类的6个默认成员函数构造函数、拷贝构造函数、析构函数、赋值操作符重载、取地址操作符重载、const修饰的取地址操作符重载   1.构造函数构造函数:(就是初始化函数)(1)函数名与类名相同,无返回值(2)创建对象时,编译器自动调用对应的构造函数(3)构造函数可以重载(4)构造函数可以在类中定义,也可以在类外定义  (一般在类内)(5)如果没有显式定义构造函数...

2018-10-29 20:37:20 212

原创 类和对象(上)

一、类和对象C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题C++是基于对象的,关注的是对象,将一件事拆分成不同的对象,靠对象之间的交互完成二、类的定义注意:(1)C++兼容C中所有的语法             (2) C中struct是结构体            (3)C++struct和class都是类,但struct还可以认为是结构...

2018-10-29 20:37:05 163

原创 基础I/O口和动静态库的生成

一·动静态库1.先编写源文件和头文件:add.c ,sub.c,mul.c,div.c,math.h math.h 1 #ifndef __MYMATH_H__ 2 #define __MYMATH_H__ 3 int add(int x,int y); 4 5 int sub(int x,int y); 6 7 int mul(int x,int y);...

2018-10-28 15:01:04 272

原创 文件描述符和FILE结构体的对比

1.FILE是c库中用来封装文件描述符(fd)的结构体,其本质上还是调用了fd来访问文件 原因:1.一般C库写入文件时是全缓冲的,而写入显示器是行缓冲的           2.printf函数和fwrite函数自带缓冲区(进度条),当发生重定向到普通文件时,数据的缓冲方式变为了全缓冲           3.而在缓冲区中的数据,不会立即被刷新,甚至到了fork之后      ...

2018-10-28 15:00:48 154

原创 C++入门

 C++发展史1.命名空间#include <iostream>int main(){ std::cout << "123" << std::endl; return 0;}作用:对标识符的名称进行本地化,防止命名冲突和命名污染,因此C++中可以有重名变量使用:using A:Add     using namespa...

2018-10-20 23:04:03 124

原创 system函数和popen函数

popen函数 #include <stdio.h>FILE *popen(const char *command, const char *type);int pclose(FILE *stream);popen总是和pclose一起出现被使用的。popen() 创建一个管道,通过fork或者invoke一个子进程,然后执行command。返回值在标准IO流中,由于是...

2018-10-16 16:34:26 223

原创 关于环境变量的函数及相关命令

基本概念:     环境变量一般指在操作系统中用来指定操作系统运行环境的一些参数。     通常具有某些特殊用途,在系统中通常具有全局特性。常见的环境变量:(可由父进程传递给子进程)    -PATH*:指定目录的搜索路径    -HOME*:指定用户的主工作目录    -HISTSIZE*:指保存历史命令记录的条数    -SHELL*:当前shell操作环境变量...

2018-10-12 11:55:47 253

原创 进程概念

1.几种进程的调度算法在OS中调度的是实质是一种资源分配。调度算法是指:根据系统资源分配策略所规定的资源分配算法。对于不同的系统或系统目标,通常采用不同的调度算法。1.先来先服务和短作业(进程)优先调度算法 先来先服务 (FCFS,first come first served) 在所有调度算法中,最简单的是非抢占式的FCFS算法。算法原理:进程按照它们请求CPU的顺序使用C...

2018-10-12 09:08:43 270

转载 task_struct的定义及注释

struct task_struct {volatile long state; //说明了该进程是否可以执行,还是可中断等信息unsigned long flags; //Flage 是进程号,在调用fork()时给出int sigpending; //进程上是否有待处理的信号mm_segment_t addr_limit; //进程地址空间,区分内核进程与普通进程...

2018-10-08 20:11:33 244

转载 开发工具

1.vim 的简单配置    https://blog.csdn.net/wooin/article/details/18589172.几种编辑器的对比vim和Emacs的对比:https://blog.csdn.net/yummy_alice/article/details/79492785vim是一个强大的编辑器        Vim不只是Vi        Vim是...

2018-10-07 23:37:24 397

原创 哈希冲突的两种解决办法

1.开散列(开放地址法)思想:发生哈希冲突时,如果哈希表未装满,可以把key存放到表的“下一个”空位中去。即 pos++缺点:所有冲突连在一起易产生数据堆积,占用别的数据的关键码,导致搜索速率下降 #pragma once#include <stdio.h>#include <malloc.h>#include <assert.h>t...

2018-08-29 23:31:47 1988

原创 二叉树的常规应用

1.递归BTNode* BinaryTreeCreate(BTDataType* a, int num, int* i) //前序,VLR ,数组,元素个数,元素下标{ if (a[*i] != '#'&& (*i)<num) { BTNode* root = BuyNodeTree(a[*i]); (*i)++; root->_left = ...

2018-08-29 17:24:35 177

原创 堆的基础操作

1.头文件#pragma once#include <stdio.h>#include <malloc.h>#include <assert.h>#include <stdlib.h>#define N 1000typedef int HPDataType;typedef struct Heap{ HPDataType* _...

2018-08-29 16:19:08 166

原创 链表面试题

头文件 “Link.h”#ifndef __LINKLIST_H__#define __LINKLIST_H__#include <stdio.h>#include <stdlib.h>#include <assert.h>typedef int DataType;typedef struct Node{ int data; struct...

2018-08-28 23:45:41 82

原创 栈和队列的迷宫问题

maze.h#pragma once#include <stdio.h>#include <assert.h>#define N 6static int _maze[N][N] = { {0, 0, 0, 0, 0, 0 }, {0, 0, 1, 1, 1, 1 }, {0, 0, 1, 0, 1, 0 }, {0, 0, 1, 1, 1, 0 },...

2018-08-28 18:48:14 512

原创 二叉树的基本操作(C语言版)

1.创建一个二叉树思想:前序创建,VLR顺序,递归int main(){ BTDataType arr[] = { 'A', 'B', 'D', '#', '#', 'G','#','#' ,'C', 'E', '#', '#', 'F'}; int num = sizeof(arr) / sizeof(arr[0]); int i = 0;...

2018-08-21 14:52:05 790

原创 栈和队列面试题(C语言版)

1.判断出入栈的合法性https://blog.csdn.net/Payshent/article/details/699514112.使用两个栈实现一个队列思想:1.栈1中的所有数据弹到栈2中(栈2为空栈)           2.再从栈2弹出所有数据,则可出现队列的效果(默认压数据压到队列1中,从队列2出数据)typedef struct Stack{ DataT...

2018-08-14 17:10:57 1144

原创 Linux下一些常用命令及一些重要目录

文件及目录cd  /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls *[0-9]* 显示包含数字的文件名和...

2018-07-10 22:20:39 331

原创 superlinkman手机联系人实现

#include "superlinkman.h"void expand_capacity(Contact* p){ if (p->num == p->capacity) {  int sz = p->capacity + INC_NUM;  Peo* tmp=(Peo*)realloc(p->s, sz*sizeof(Peo));  p->capacity += I...

2018-05-29 22:20:14 121

空空如也

空空如也

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

TA关注的人

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