c++
Zero-h
无惧。
展开
-
C++项目|群聊系统(Linux)
群聊系统项目背景项目简介客户端需求分析服务端需求分析服务端功能分析用户管理用户注册用户注册的信息传输已注册用户信息存储用户登录在线用户信息存储为新用户分配ID消息管理消息的接收消息的发送日志消息客户端需求分析客户端界面用户注册登录申请用户消息发送用户消息接收在线用户列表展示项目总结不足之处原码链接项目背景如今各式各样的聊天工具层次不穷,作为计算机专业的学生,我也想通过自己的努力,实现一个简单的...原创 2020-04-19 18:53:58 · 711 阅读 · 3 评论 -
指针总结_上
一、什么是指针?指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。简单的来说指针就是指向一个变量的存储地址,这个变量的类型可以使我们的内置类型(int,char,double,等等),也可以是我们自定义类型,对于指针的理解,我们可以将这个变量类比成一个人,指针保存的就是这个人的地址。假设我们有事情要找到这个人,接下来...原创 2020-02-23 17:55:10 · 169 阅读 · 0 评论 -
C++|继承
继承的定义通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。简单的来说,继承就是新的类可以继承一个已经存在的类,同时新创建的类拥有所继承的类的成员,但要注意的是,我们在继承的时候也会有继承的权限,并不是我们继承了旧类的成员...原创 2020-02-22 17:38:07 · 129 阅读 · 0 评论 -
C++项目|磁盘文件管理工具
一、简述磁盘文件管理工具该工具的主要功能是删除磁盘中的重复文件。如何判断两个文件的内容是否完全一致,我们采用计算文件指纹的方法,通过指纹验证的方法判断两个文件是否相同。所谓的文件指纹即数字签名。二、 该工具实现所需要解决那些问题如何判断两个文件的内容完全一致?数字签名如何进行计算?如何获取磁盘中的文件信息?怎么去找到那些文件内容相同的文件?三、 概述问题的解决方法我们可以...原创 2020-02-20 17:21:24 · 650 阅读 · 0 评论 -
练习|找出旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组{3,4,5,1,2}的一个旋转,该数组的最小值为1。问题分析:我们可以发现旋转之后的数组看似无序,但我们却可以换分为两个排序的子数组,而且,前面的子数组的元素大于或者等于后面子数组的元素,而且该数组的最元素刚好是这两个子数组的分界线。在排序的数组中...原创 2020-02-11 17:12:38 · 142 阅读 · 0 评论 -
C++|摸版
一、 泛型编程举一个简单的例子,我们如何去实现一个通用的交换函数?void Swap(int& left, int& right){ int temp = left; left = right; right = temp;}void Swap(double& left, double& right){ double temp = left; l...原创 2020-02-11 15:59:57 · 245 阅读 · 0 评论 -
C++|STL库容器小结
一、 什么是STL库STL(standard templatelibaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。二、STL库的六大组件仿函数:...原创 2020-02-11 15:15:28 · 336 阅读 · 2 评论 -
操作系统|进程调度
进程调度进程调度室操作系统必不可少的一种调度。因此在三种类型的OS(DOS、Windows、Linux),都无一例外地配置了进程调度。此外它也是对系统性能影响最大的一种处理机调度。进程调度的任务保存处理机的现场信息。在进行调度时首先需要保存当前进程的处理机的现场信息,如程序计数器、多个通用寄存器中的内容。按某种算法选取进程。调度程序按某种算法从就绪队列中选取一个进程,将其状态改为运行...原创 2019-12-02 22:34:39 · 686 阅读 · 0 评论 -
操作系统|时间片轮转调度算法(RR)
模拟实现非抢占式将进程信息表的信息根据进入时间排序,判断当前时间线下有哪些进程到达,将其插入到等待队列中,等待分配一个时间片,若进程未全部执行结束,将其插入队尾,等待下次分配。在进行插入队尾前判断当前时间下哪些进程到达,将其依次插入到队尾中单步执行进程//单步执行进程void TmpOfPrccess(Process& process, int n){ //如果服务时间等...原创 2019-12-02 22:26:18 · 5490 阅读 · 0 评论 -
操作系统|高响应比优先算法(HRRN)
模拟实现的为非抢占式首先,根据时间线的时间判断进程时间是否到达,如果进程时间到达,将进程存入缓冲池中,在每次执行前先计算出缓冲池中的进程响应比,得到响应比最高的进程信息,单步执行该进程单步执行进程信息//单步执行进程void TmpOfPrccess(Process& process, int n){ //如果服务时间等于剩余服务时间,则证明该进程第一次被调度 if (p...原创 2019-12-02 22:13:44 · 8380 阅读 · 4 评论 -
操作系统|短作业优先调度算法(short job first, SJF)
模拟的实现为非抢占式短作业优先,以为着当在已经到达的进程中,选择所需运行时间最短的先执行。首先我们需要一个缓冲池(等待队列),在缓冲池中保存已经到达的进程。将缓冲池中的进程信息根据服务时间进行排序没选择缓冲池中所需服务时间最短的优先执行单次进行进程调度在函数中process为单条进程信息,n为系统分配的时间片长度//单步执行进程void TmpOfPrccess(Proce...原创 2019-12-02 21:35:45 · 4014 阅读 · 0 评论 -
操作系统|先来先服务时间调度算法(FSFC)
模拟的实现为非抢占式先来先服务算法,根据其字面意思我们就可以知道,该进程调度算法是根据到达时间依次执行,因此我们可以很容易想到用使用排序对进程进入时间进行排序操作。进程信息根据进入时间排序//按照进入时间进行排序void EnterTimeSort(vector<Process>& process){ if (process.size() == 0) ret...原创 2019-12-02 21:15:19 · 3784 阅读 · 0 评论 -
操作系统|进程调度算法进程对象创建
首先我们要清楚在进程对象中需要拥有哪些信息:①进程标识符;②进程进入时间;③进程结束时间;其次,在进程执行时,我们又需要哪些中间值来辅助进程进行:①服务剩余时间;②时间线;③优先级;最后,在进程执行结束后,我们需要得到哪些信息:①进程开始时间;②进程结束时间;③进程周转时间;④进程带权周转时间;在上述中我们可以发现创建进程类时,其中拥有一个很重要的对象,就是时间,因此我们也需要实现一个时...原创 2019-12-02 20:55:58 · 338 阅读 · 1 评论 -
C++|类与对象_3
1. 再谈构造函数1.1构造函数体赋值在创建对象是,编译器通过调用构造函数,给对象各个成员变量一个合适的初始值。class Date{public: Date(int year, int month, int day) { _year = year; _month = month; _day = day;}private: int _year; int _mont...原创 2019-11-18 19:54:22 · 127 阅读 · 0 评论 -
C++|类与对象_2
1. 类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。构造函数拷贝构造函数析构函数赋值运算符重载函数取地址运算符重载函数const修饰的取地址运算符重载2. 构造函数2.1 构造函数概念对于以下的日期类:class Date{public: void Set...原创 2019-11-04 15:11:32 · 207 阅读 · 0 评论 -
C++|类与对象_1
1. 类与对象的初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2. 类的引入C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。上面结构体的定义,在C++中更喜欢用class来代替struct Student{...原创 2019-11-03 16:18:23 · 213 阅读 · 0 评论 -
C++|入门
1. 命名空间在C/C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是为解决这种问题的。1.1如何使用namespace?// 1.普通的命名空间namespace N1 // N1为命名空间的名称{ // 命名空间中的...原创 2019-11-01 10:09:06 · 207 阅读 · 0 评论