自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 选择练习————part6

1.HTTP CODE中403代表什么含义?A.服务器当前无法处理请求B.服务器不能或者不会处理该请求C.服务器收到该请求但是拒绝提供服务D.服务器无法回应且不知原因解析:4xx的状态码是服务器接收到了来自客户端的请求,但是不知道怎么处理请求,所以拒绝提供服务所以本题选C...

2020-06-10 21:48:22 391

原创 列举三种自定义排序比较规则

在STL中,有一个sort函数,可以对int,double等类型进行排序,而对于一些用户自定义的类型而无法排序,是因为它(函数)不知道如何对自定义数据进行比较,这时候就需要用户自己编写比较规则了。列举三种常见的比较规则写法。① 自定义函数#include <iostream>#include <string>#include <algorithm>using namespace std;struct Goods{ string name; double

2020-05-31 19:37:10 407

原创 传输层TCP协议详解

TCP协议TCP协议简介TCP首部格式(报头)TCP协议简介传输控制协议(TCP,Transmission Control Protocol)是在网络分层中传输层的协议。为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个协议,具有以下特点:1.面向连接2.基于流的方式3.可靠通信,确保传输数据的正确性TCP首部格式(报头)...

2020-05-25 22:23:19 1179

原创 选择练习————part5

程序出错在什么阶段()?int main(void){ http://www.taobao.com cout << "welcome to taobao" << endl; return 0;}A 预处理阶段出错B 编译阶段出错C 汇编阶段出错D 链接阶段出错E 运行阶段出错F 程序运行正常解析://是注释标识符,后面的代码无效,所以www.t...

2020-04-30 21:46:50 486

原创 基于TCP协议的服务器

TCP服务器TCP协议概念TCP服务器常见的API实现TCP服务器基于线程池的TCP服务器TCP协议概念TDP协议是在整个网络分层的传输层的协议,具有以下特性1.传输层协议2.有连接3.可靠传输4.面向字节流TCP服务器常见的API创建 socket 文件描述符(客户端+服务端)int socket(int domain, int type, int protocol);da...

2020-04-27 21:54:21 573

原创 Linux相关问题————part1

1.请描述一下用多线程怎么实现生产者消费者模型?答:创建两类线程,一类充当生产者,向缓冲区中生产数据;另一类充当消费者,从缓冲区中读取数据并消费,邮箱共实现模式。通过互斥量和条件变量实现同步,通过信号量实现同步2.fork()都会做哪些复制?答:fork成功之后,子进程会拷贝父进程所有的内容,包括数据段,堆,栈,共享区等等,还会为空间分配虚拟地址空间。但是fork之后父子进程代码共享,数据...

2020-04-27 21:16:21 97

原创 基于UDP协议——————服务器

UDP协议服务器UDP协议概念网络字节序UDP服务器的常见API简单实现UDP服务器UDP协议概念UDP协议是在整个网络分层的传输层的协议,具有以下特性1.无连接2.不可靠传输3.面向数据报关于特性这里不做过多阐述网络字节序首先网络数据流采用大端字节序,即低地址高字节。网络中先发出去的数据是低地址,后发出去的数据是高地址而为什么是大端字节序存储呢?原因如下:我们都知道,网...

2020-04-27 19:55:07 222

原创 二叉树之二叉搜索树BST

二叉搜索树概念操作查找插入删除代码实现性能分析概念二叉搜索树又称二叉排序树,它可以是一颗空树,或者具有以下性质的二叉树。若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树操作查找若节点不为空:如果根节点key==查找key,则找到如果根节点key> 查找key,在根节点的左子...

2020-04-26 21:02:26 429

原创 编程练习————part8

一.题目:题目链接老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的财富——一大堆桃子。老猴子决定把这些桃子分给小猴子。第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个。它把剩下的一个留给老猴子,自己拿走其中的一堆。第二个猴子来了,它把桃子分成五堆,五堆一样多,但又多出一个。它把多出的一个留给老猴子,自己拿走其中的一堆。后来的小猴子都如此照办。最后剩下的桃子全部留给老猴子。...

2020-04-22 22:26:33 150

原创 网络基础-------OSI,UDP/IP协议,数据传输,封装解封装,IP/MAC地址

前言:计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息,想要传递各种不同的信息,就必须要约定好双方的数据格式。但是这只是通信的两台主机约定好,这还是远远不够的。比如计算机生产厂商还有很多,计算机操作系统也有很多等等。如何让所有的厂商之间都能进行相互顺畅的通信?这时候就需要约定一个共同的标准,大家都来遵守,这就是网络协议。网络协议:网络协议:计算机网络中进...

2020-04-15 22:58:56 303

原创 C++多态

概念:多态是不同的的对象去调用同一份代码,会产生不同的结果构成多态的条件:1.必须要有继承2.必须通过基类的指针或这引用调用虚函数3.在子类中必须对基类虚函数进行重写,虚函数是指在基类中加上virtual修饰的函数,重写是指在子类有和基类的虚函数完全相同的函数名,返回值,参数列表,函数内容可以不同class Person{public: virtual void work()函数必...

2020-04-14 16:26:22 185

原创 while(~scanf("%d",&n))中~的作用

~在C语言的意思是按位取反,即0->1,1->0.而且scanf函数是有返回值的,并且返回值为int。int scanf( const char *format [,argument]... );根据这个符号特殊的含义和scanf函数的返回值,当输入为-1是,将-1取反为0,循环会结束所以~的含义为循环输入,直到输入-1,停止循环。...

2020-04-11 20:29:58 464

原创 选择练习————part4

1.下列选项中,导致创建新进程的操作是()I用户登陆成功II设备分配III启动程序执行A 仅I和IIB 仅II和IIIC 仅I和IIID I、II和III解析:能够创建新进程的操作:用户登录作业调度提供服务应用请求设备分配不会创建新进程所以本题选C2.对进程和线程的描述,以下正确的是()A 父进程里的所有线程共享相同的地址空间,父进程的所有子进程共享相同的地址空间...

2020-04-05 22:50:20 1447

原创 编程练习————part7

一.题目:数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这是...

2020-04-05 21:39:38 152

原创 选择练习————part3

1.进程调度时,下列进程状态的变化过程哪一项是不可能发生的?A 阻塞挂起->阻塞B 就绪挂起->就绪C 就绪挂起->阻塞挂起D 阻塞挂起->就绪挂起解析:下图是进程状态的变化过程,进程是不会从就绪挂起到阻塞挂起的所以本题选C...

2020-04-05 15:59:24 1185

原创 Linux互斥锁,条件变量,POSIX信号量

互斥概念:任何时刻,都保证一次只有一个执行流进入临界区,访问临界资源。要保证一次只有一个执行流进入临界区,而且不能被其他线程干扰,要做到就需要有一个锁。在Linux下,把这把锁叫做互斥量在进入临界区之前该线程申请这个锁,然后该进程进入临界区访问临界资源,在访问完后再解锁,别的线程再进行重新申请锁。互斥量的接口互斥量的函数的头文件都是#include <pthread.h>,...

2020-04-01 21:56:06 144

原创 选择练习————part2

1.

2020-04-01 17:08:49 1328

原创 Linux下线程(LWP)的相关概念

一.概念线程:一个进程内部的控制序列。或者说在一个程序里的一个执行路线首先明确一个概念,在Linux下是没有进程的控制块的,使用进程模拟的线程...

2020-03-30 20:56:42 1395

原创 编程练习————part6

一题目:小东所在公司要发年终奖,而小东恰好获得了最高福利,他要在公司年会上参与一个抽奖游戏,游戏在一个6*6的棋盘上进行,上面放着36个价值不等的礼物,每个小的棋盘上面放置着一个礼物,他需要从左上角开始游戏,每次只能向下或者向右移动一步,到达右下角停止,一路上的格子里的礼物小东都能拿到,请设计一个算法使小东拿到价值最高的礼物。给定一个6*6的矩阵board,其中每个元素为对应格子的礼物价值,...

2020-03-30 16:35:37 250

原创 编程练习————part5

一题目春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。若没有金额超过总数的一半,返回0。测试样例:[1,2,3,2,2],5返回2思路:如果这个数在数组中超过一半,那么给这个数...

2020-03-29 22:36:29 144

原创 选择练习————part1

1.关于以下代码,哪个说法是正确的?myClass::foo(){ delete this;}..void func(){ myClass *a = new myClass(); a->foo();}A.它会引起栈溢出B.都不正确C.它不能编译D.它会引起段错误解析:在类的成员函数中调用delete this?在类的成员函数中能不能调用del...

2020-03-25 14:36:41 388

原创 编程练习————part4

一.1.题目:有一个兔子,从出生后第3个月起每个月都生一个兔子, 小兔子长到第三个月后每个月又生一个兔子,假如兔子都不死, 问每个月的兔子个数为多少?2.思路:我们先来模拟前几个月的兔子情况,括号内代表兔子月份,3个月以上不再增长。月数 兔子情况 兔子数1 1(1) ...

2020-03-24 14:40:10 114

原创 编程练习————part3

一.题目:在命令行输入如下命令:xcopy /s c:\ d:\,各个参数如下:参数1:命令字xcopy参数2:字符串/s参数3:字符串c:\参数4: 字符串d:\请编写一个参数解析程序,实现将命令行各个参数解析出来。解析规则:1.参数分隔符为空格2.对于用“”包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy /s “C:\program fil...

2020-03-18 19:18:11 117

原创 编程练习————part2

一.题目 :对于一个给定的井字棋棋盘,请设计一个高效算法判断当前玩家是否获胜。给定一个二维数组board,代表当前棋盘,其中元素为1的代表是当前玩家的棋子,为0表示没有棋子,为-1代表是对方玩家的棋子。测试样例:[[1,0,1],[1,-1,-1],[1,-1,0]]返回:true思路:对于井字棋的获胜方式,有下面几种:1.一行全为12.一列全为13.斜角全为1有获胜的方法就很好写...

2020-03-14 18:18:49 320

原创 进程间信号的相关概念

一.概念信号是什么?信号是进程事件通知机制。提供了异步处理事件的方法。在linux下输入指令kill -l,可以查看所有信号二.产生信号的方式通过终端按键,例如ctrl c,产生的就是2号信号通过系统调用函数产生信号,例如kill,raise,abort int kill(pid_t pid, int sig); 给对应进程发送对应信号,成功返回0,失败返回-1 ki...

2020-03-13 22:49:36 144

原创 多继承 菱形继承 虚继承

谈菱形继承前我们先来讨论多继承一. 多继承:一个子类同时继承多个父类。class A{public: A() { cout << "A::A" << endl; } ~A() { cout << "A::~A" << endl; }private: int m_a;};class B{public: B()...

2020-03-12 17:17:13 170

原创 最大公约数,最小公倍数

一.求两个数最大公约数。例如:3,6 输出3思路:公约数是这两个数除以这个数没有余数,而a与b的最大公约数可以转换为a与b的余数和a,b之间较小值的公约数。当余数为0时,余数所除的分母即为最大公约数代码:int GetCD(int a,int b){ int ret = a%b; while(ret!=0) { a = b; b = ret; ret = a%b;...

2020-03-12 12:34:45 114

原创 C++继承

继承是一种可以使代码复用的一种手段,允许在原有类的基础上产生新的类,即可产生派生类,原有的类为基类注:1.派生类继承基类,继承方式的权限是往里缩而不会往外扩的,public>protected>private。2.基类的私有成员在派生类是不允许直接被访问的,而共有成员和保护成员可以直接被访问,这也是私有和保护的区别...

2020-03-12 11:58:08 198

原创 编程练习————part1

题目:考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:“car” < “carriage” < “cats” <"doggies < “koala”2.根据字符串的长度排序。例如:“car” < “cats” < “koala” <“doggies” < “c...

2020-03-10 18:27:52 320

原创 printf中%m.nd, %m.ns, %m.nf的输出规则

%m.nd:m代表输出一共占m列,不够m列前面补空格,够m列不作任何处理,n代表这个数一共要有n列,不够前面补0,够n列不做任何处理int main(){ int a = 123; printf("%.4d\n",a); printf("%5d\n", a); printf("%5.4d\n", a); return 0;}%m.ns:m代表这个字符串一共输出m列,n代表取这...

2020-03-09 15:04:27 5673 10

原创 容器适配器queue,priority_queue的使用和模拟实现

queue是一种基于deque实现的容器适配器,具有先进先出的原则queue的头文件#include <queue>一.使用1.size2.empty3.push4.pop5.front6.backint main(){ queue<int>Q; Q.push(1); Q.push(2); Q.push(3); Q.push(4); Q.pu...

2020-03-03 16:12:48 136

原创 进程间通信----共享内存原理及函数使用

共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。原理:在Linux下,创建进程A和进程B时,它们都会创建task_struct,虚拟地址空间,页表,通过页表把虚拟空间的共享数据区域的内容映射到物理内存上的同一块空间,这块空间就叫做共享内存。查看共享内存ipcs -mkey:唯一键值shmid:共享内...

2020-03-03 12:49:33 534 1

原创 用管道模拟实现用户和服务器的连通

原理:根据管道和重定向完成模拟实现client文件的代码#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>int main(){ int fifo = mkfifo("file...

2020-03-01 21:48:51 108

原创 容器适配器stack的使用和模拟实现

stack是一种容器适配器,是基于双端队列(deque)实现的。stack的头文件#include <stack>由于stack具有先进后出的原则,所以操作也是符合这个原则这样实现的一. 使用1.push2.pop3.top4.size5.empty#include <iostream>#include <stack>using names...

2020-02-29 20:11:19 120

原创 list类的模拟实现

list类的模拟实现主要是迭代器的实现,list类的迭代器是一个类,所有的操作都是以迭代器为基础实现的//节点类template<typename T>class ListNode{public: ListNode(const T&value = T()) :Prev(nullptr), Next(nullptr), Val(value) {} ~ListNod...

2020-02-29 18:19:17 177

原创 vector类的模拟实现

完成部分vector类的操作#include <iostream>#include <vector>#include <vld.h>using namespace std;template<typename T>class Vector{public: typedef T* iterator;public: iterator b...

2020-02-27 17:28:52 230

原创 list类

list类是一种可在任意位置插入的容器list类的头文件#include <list>一.list类的构造1.无参构造2.初始化n个值的构造3.拷贝构造4.用区间构造5.迭代器构造int main(){ list<int>t1; list<int>t2(10,2); list<int>t3(t2); int a...

2020-02-26 16:21:47 683

原创 Linux下ext2文件系统inode的概念以及软硬链接

软硬链接1.硬链接一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode 号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的 访问。这种情况就被称为"硬链接"(hard link)。硬链接命令 ln file1 ...

2020-02-25 18:29:07 571

原创 输出信息到显示器的四种方法

库函数一.printf二.fprintf三.fwrite系统调用四.write

2020-02-24 19:56:39 1517

原创 文件描述符

一.文件描述符:是一个非负的索引值。在Linux下,对文件的操作都是通过文件描述符来进行的。linux进程默认会打开三个文件描述符,分别是0 stdin 标准输入 对应设备:键盘1 stdout 标准输出 对应设备 :显示器2 stderror 标准错误 对应设备:显示器我们知道,打开一个文件相当于创建一个进程,就会...

2020-02-24 19:47:52 3176

空空如也

空空如也

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

TA关注的人

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