自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (11)
  • 收藏
  • 关注

原创 301-读取策略,放置策略和置换策略

操作系统软件操作系统的内存管理设计取决于三个基本方面的选择:1、是否使用虚拟内存技术2、使用分页还是分段,或者是二者的组合3、为各种存储管理特征采用的算法前面两个方面中的选择取决于使用的硬件平台。因此,早期的Unix实现中没有提供虚拟内存,是由于该系统运行的处理器不支持分页或分段。如果没有对地址转换和其他基本功能的硬件支持,则这些技术都是不能达到实用的。对前面两个方面还有两个附加的说明:首先,除了一些老式个人计算机上的操作系统(如MS-DOS)和特殊的系统外,所有重要的操作系统都提供了虚拟内存

2021-04-28 21:33:03 1083

原创 300-求解0-1背包问题

题目如下:状态:dp[i][j]:背包为j的情况下,所选物品的范围是从i到n,背包的最大价值。状态转移:当i == n时候,如果w[i] > j dp[i][j] =0; 如果:w[i]>=j dp[i][j] = v[i]; … i;如果w[i]<j dp[i][j] = dp[i+1][j]如果w[i]>=j 选择这个物品和不选择这个物品的最大值: max{dp[i+1][j], v[i]+dp[i+1][j-w[i]]}解题代码如下int OneZeroBag

2021-04-26 19:53:13 95

原创 299-最小覆盖子串

题目如下:给你一个字符串 S、一个字符串 T 。请你设计一种算法,可以在 O(n) 的时间复杂度内,从字符串 S 里面找出:包含 T 所有字符的最小子串。示例:输入:S = “ADOBECODEBANC”, T = “ABC”输出:“BANC”提示:如果 S 中不存这样的子串,则返回空字符串 “”。如果 S 中存在这样的子串,我们保证它是唯一的答案。解题代码如下#include<iostream>#include<string>#include<vecto

2021-04-26 19:49:01 92

原创 298-SQL Server刷题(2)

SQL Server刷题(2)一、单项选择题(每小题1分,共5分)1.数据库的网状模型应满足的条件是 ( A )A.允许一个以上的结点无双亲,也允许一个结点有多个双亲B.必须有两个以上的结点C.有且仅有一个结点无双亲,其余结点都只有一个双亲D.每个结点有且仅有一个双亲2.在SQL SERVER数据库中修改表的某一属性数据类型的命令,正确的是( D )A.ALTER TABLE表名 MODIFY属性 新数据类型B.ALTER TAB

2021-04-25 22:45:35 1081

原创 297-SQL Server刷题(1)

SQL Server刷题(1)填空题1、DBMS的中文意思是 数据库管理系统2、数据管理经历了人工管理阶段;文件系统阶段;数据库系统阶段 三个发展阶段。3、数据库管理系统的数据模型包括:层次模型、网状模型、关系模型 和面向对象模型。4、关系代数中专门的关系运算包括:选择、投影和连接5、SQL语言提供数据定义、数据操纵 、数据控制等功能。6、假设一个班只有一个班长,实体关系中学生和班长之间的联系是 多对1 。数据查询设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(

2021-04-25 22:12:54 1345

原创 296-虚拟内存的分页和分段

虚拟内存的分页和分段分页虽然存在基于分段的虚拟内存,术语虚拟内存通常与使用分页的系统联系在一起。第一个使用分页实现虚拟内存的是Atlas计算机[KILB62],随后很快广泛应用于商业用途。在讲述简单分页时,曾指出每个进程都有自己的页表,当它的所有页都装入到内存中,页表被创建并被装入内存。页表项(PTE)包含有与内存中的页框相对应的页框号。当考虑基于分页的虚拟内存方案时也同样需要页表,并且通常每个进程都有一个唯一的页表,但这时页表项变得更复杂,如下图8.2a所示。由于一个进程可能只有一些页在内存中,因而

2021-04-25 21:21:34 1073

原创 295-0-1背包问题

0-1背包问题要么装,要么不装!!!不存在装一半我们假设X序列0代表不装,1代表装。X就是最大价值序列。我们选择从x1来缩小问题的规模然后我们从x2后开始,以此类推,缩小问题的规模最优子结构性质我们假设cj代表背包承受的重量,i代表放的物品。c(i,j)代表的就是最大的价值!数学递归表达式i==n,代表放的是第n个物品,从去来看,放的一个物品。我们是从头开始缩小问题规模表达式解题代码#include<iostream>using namesp

2021-04-24 21:58:11 173 2

原创 294-机器人路径

机器人路径我们可以走的路径可以是如何表示走的路径数?首先建立动态方程式:我们假设i代表行,j代表列,dp [i][j]代表总的路径数。vector<vector<int> > dp(m, vector<int>(n, 0));代表的是下图解题代码#include<iostream>#include<vector>using namespace std;int uniquePath(int m, int n){

2021-04-24 20:21:37 129

原创 293-打家劫舍(解决与拓展)

打家劫舍题目如下你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入

2021-04-24 20:09:38 107

原创 292-局部性和虚拟内存

局部性和虚拟内存虚拟内存的优点是很具有吸引力的,但这个方案切实可行吗?关于这一点曾经有过相当多的争论,但是众多操作系统中的经验已多次证明了虚拟内存的可行性。因此,基于分页或分页和分段的虚拟内存已经成为当代操作系统的一个基本构件。为理解关键问题是什么以及为什么会有这么多的争论,需要再次分析一下就虚拟内存而言的操作系统任务。考虑一个由很长的程序和许多个数组的数据组成的大进程。在任何一段很短的时间内,执行可能会局限在很小的一段程序中(如一个子程序),并且可能仅仅会访问一个或两个数组的数据。这样,如果在程序被挂

2021-04-23 19:24:39 369

原创 291-虚拟内存的硬件和控制结构

虚拟内存的硬件和控制结构通过对简单分页、简单分段与固定分区、动态分区等方式进行比较,一方面可以了解二者的区别,另一方面可以看到在内存管理方面具有根本突破的基础所在。分页和分段的两个特点是取得这种突破的关键:1、进程中的所有存储器访问都是逻辑地址,这些逻辑地址在运行时动态地转换成物理地址。这意味着一个进程可以被换入或换出内存,使得进程可以在执行过程中的不同时刻占据内存中的不同区域。2 、一个进程可以划分成许多块(页和段),在执行过程中,这些块不需要连续地位于内存中。动态运行时地址转换和页表或段表的使用

2021-04-23 11:01:22 196

原创 290-内存管理的安全问题

安全问题内存和虚拟内存是容易受到安全威胁的系统资源,因此需要采取一些安全对策来保护它们。最明显的安全需求是防止进程内存中的内容遭受未授权访问。如果进程没有声明共享其部分内存,则其他程序不得访问这部分内存内容。如果进程声明其某部分内存可以被指定程序共享,那么操作系统的安全服务必须保证只有这些指定进程可以访问这部分内存。缓冲区溢出攻击这是一种内存管理的很严重的安全威胁:缓冲区溢出,也叫内存越界,NIST(美国国家标准技术研究院)的关键信息安全术语词汇表中对其定义如下:缓冲区溢出:输入到一个缓冲区或者数据

2021-04-22 19:54:46 556

原创 289-分页和分段

分页大小不等的固定分区和大小可变的分区技术在内存的使用上都是低效的,前者会产生内部碎片,后者会产生外部碎片。但是,假如内存被划分成大小固定相等的块,且块相对比较小,每个进程也被分成同样大小的小块,那么进程中称为页的块可以指定到内存中称为页框的可用块。在本次中将会看到,使用分页技术在内存中为每个进程浪费的空间仅仅是进程最后一页的一小部分形成的内部碎片,没有任何外部碎片。图7-9说明了页和页框的用法。在某个给定的时间,内存中的某些页框正在被使用,某些页框是空闲的,操作系统维护空闲页框的列表。存储在磁盘上

2021-04-22 10:52:54 885

原创 288-两个线程交替打印奇数偶数

两个线程交替打印奇数偶数#include <thread>#include <condition_variable>#include <mutex>#include <iostream>using namespace std;mutex mx;//定义互斥锁condition_variable cv;//定义条件变量int number = 0;//全局量,初始化为0void thread_func1()//线程1{ unique

2021-04-21 21:39:58 158

原创 286-Go语言的操作符

Go语言的操作符1. 算术运算符注意,++自增和 --自减在 go 语言中是单独的语句,不是运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符

2021-04-21 17:08:37 180

原创 285-Go语言的类型

Go语言的枚举枚举指一系列相关的常量,比如下面关于一个星期中每天的定义。我们可以用在const后跟一对圆括号的方式定义一组常量,这种定义法在Go语言中通常用于定义枚举值。Go语言并不支持众多其他语言明确支持的enum关键字。下面是一个常规的枚举表示法,其中定义了一系列整型常量:const ( Sunday = iota Monday Tuesday Wednesday Thursday Friday Saturday numberOfDays // 这个常量没有导出

2021-04-21 13:39:44 434

原创 284-Go语言的常量

Go语言的常量在Go语言中,常量是指编译期间就已知且不可改变的值。常量可以是数值类型(包括整型、浮点型和复数类型)、布尔类型、字符串类型等。字面常量所谓字面常量(literal),是指程序中硬编码的常量,如:-12 3.14159265358979323846 // 浮点类型的常量3.2+12i // 复数类型的常量true // 布尔类型的常量"foo" // 字符串常量在其他语言中,常量通常有特定的类型,比如-12在C语言中会认为是一个int类型的常量。如果要指定一个值为-12的lo

2021-04-21 10:58:41 134

原创 283-Go语言的变量

Go语言的变量变量是几乎所有编程语言中最基本的组成元素。从根本上说,变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。Go语言中的变量使用方式与C语言接近,但具备更大的灵活性。变量声明Go语言的变量声明方式与C和C++语言有明显的不同。对于纯粹的变量声明,Go语言引入了关键字var,而类型信息放在变量名之后,示例如下:var v1 intvar v2 stringvar v3 [10]int // 数组var v

2021-04-21 10:30:52 121 2

原创 282-Go语言的工作区

Go语言的工作区1、环境变量查看环境变量的命令go envGOROOTGOROOT 是 go 的安装目录。在 Windows 上安装包会自动设置,默认为 “C:\Go”GOPATHGOPATH 是 go 语言编程的工作目录(workspace)。Windows默认的位置是 “C:\Users\用户名\go”GOBINGOBIN 是带有 main 函数的源程序执行 go install 时生成的可执行性程序安装目录,默认是在 $GOPATH/binGO111MODULEGo 的版

2021-04-21 10:04:30 422 4

原创 281-最长公共子序列

什么是动态规划?空间换区时间,保存子问题的解最长公共子序列的概念例子:它的子序列如下我们按照递增有序取数字。AC,ACB,就是它的子序列。必须是按照数据的下标依次取!!!最长公共子序列的求解思路我们假设这个Z就是X和Y的最长公共子序列。k为多少,最长公共子序列的长度就是多少。我们需要根据题目的性质降规模。我们假设1我们假设2a我们假设2b我们令c [m] [n]是最长公共子序列的值,m是X的元素个数,n是Y的元素个数,最长公共子序列的值是k。m,n和

2021-04-20 21:47:34 235

原创 280-归并排序算法(递归和非递归)

归并排序算法(递归和非递归)从left到m下标是从小到大排序,从m+1到right下标是从小到大排序。我们要把这些数据并轨到目标块中,然后我们再把目标块中的数据拷贝到src圆里面非递归实现右图是我们的圆src,分为2个部分,左半部分从小到大,右半部分从小到大,left是左半部分的首地址,m是中间划分的地址,right是右半部分的尾地址。k指向左半部分的首地址,也是目的的首地址。谁小就把谁往目的里放。这个程序是把圆的数据导入到目的。并没有把目的往圆里拷贝。void Merge(int *di

2021-04-20 20:50:35 205

原创 279-寻找最小差值的问题

寻找最接近的点寻找最小差值的问题假设我们有一个数组,数组中的数据并没有进行排序,通过找第k位小的,会给出一个m值,把数据进行划分,并没有排序,m的位置不动,s1<=m,s2>m我们在m的左边找一个d1,右边找一个d2,然后在左边找到最大值,在右边找到最小值,相减得到d3。为什么在s1找最大值,s2找最小值?我们在划分的时候,找的是第k小的数据,有一个数据是m,s1的所有值均小于等于m,s2的所有值均大于m,在s1找最大值,在s2找最小值,相减值(差值)就是最小的!寻找最小差值的代

2021-04-20 20:00:22 627

原创 278-选择数组中第k小的数据并打印

选择数组中第k小的数据并打印(分治策略)我们将56作为划分的依据。返回的是4下标。就是第5小的56的位置也不会变动了。如果我们的k是7,大于第5小,从5到9找第k小的。把90提出来作为划分的依据。返回8下标,但是在5-9区域是第8-5+1=4小。比 k大,在5-8找。int Select_K(vector<int>& br, int left, int right, int k){ if (left == right && k == 1) retu

2021-04-18 20:17:33 133

原创 277-找出数组中的第一大和第二大的数据

找出数组中的第一大和第二大的数据void PrintMax12(const vector<int>& br){ if (br.size() < 2) return; int max1 = br[0] > br[1] ? br[0] : br[1];//第1大的 int max2 = br[0] > br[1] ? br[1] : br[0];//第2大的 for (int i = 2; i < br.size(); ++i) { if (br

2021-04-18 20:05:22 412

原创 276-对链表进行快速排序

对链表进行快速排序定义链表typedef int ElemType;typedef struct ListNode{ ElemType data; ListNode* next;}ListNode, * LinkList;对链表的初始化尾插法ListNode* Init_List(const vector<int>& br){ ListNode* head = (ListNode*)malloc(sizeof(ListNode)); head->data

2021-04-18 19:49:10 148

原创 275-快速排序算法(单向划分)

快速排序算法(单向划分)解题思路图解我们希望把小于等于56的都集中在左边,大于56的集中在右边。34<56,把i+1,i和j的位置交换。j往下走,是23,小于56,i+1,i到达j,23和23交换。j往下走,78大于56,不交换,j往下走,90大于56,不交换,j往下走,到12的位置。12小于56,i+1到达78的位置,j和i的数据交换,也就是12和78交换。i不动,j往下走,到45的位置。小于56,i+1,到90的位置。i和j的数据交换,90和45交换,交换后,j往后走,都

2021-04-18 19:34:00 299

原创 274-内存分区

内存分区内存管理最基本的操作是由处理器把程序装入内存中执行。在大部分现代多道程序设计系统中,这往往还涉及一种称为虚拟内存的紧密方案。虚拟内存又基于分段和分页这两种基本技术或其中的一种。在考虑虚拟内存技术之前,先考虑一些不涉及虚拟内存的简单技术。其中分区技术曾用于许多已经过时的操作系统中。另外两种技术,简单分页和简单分段,并未在实际中使用过。但在不考虑内存的前提下,先分析这两种技术有助于学习虚拟内存。固定分区在大多数内存管理方案中,可以假定操作系统占据了内存中的某些固定部分,内存的其余部分可供多个用户

2021-04-17 15:17:33 954

原创 273-内存管理的需求

内存管理的需求对内存管理提出来了5点需求:重定位,保护,共享,逻辑组织,物理组织重定位在多道程序设计系统中,可用的内存空间通常被多个进程共享。通常情况下,程序员并不能事先知道在某个程序执行期间会有其他哪些程序驻留在内存中。此外还希望通过提供一个巨大的就绪进程池,能够把活动进程换入或者换出内存,以便使处理器的利用率最大化。一旦程序被换出到磁盘,当下一次被换入时,如果必须放在和被换出前相同的内存区域,那么这将会是一个很大的限制。为了避免这种限制,我们需要把进程重定位到内存的不同区域。因此,我们事先不

2021-04-15 21:35:23 350

原创 271-Redis缓存穿透和雪崩

Redis缓存穿透和雪崩Redis缓存的使用,极大的提高了应用程序的性能和效率,特别是数据查询等。但同时,它也带来了一些问题。其中,最主要的问题就是数据一致性,从严格意义上来讲,这个问题是无解的。如果对数据一致性要求很高,那么就不能使用缓存。另外一个典型的问题就是:内存穿透,内存击穿和内存雪崩问题。目前,业界也都有比较流行的解决方案。缓存穿透 - 查不到概念缓存穿透的就是用户想要查询一个数据,发现Redis中没有,也就是缓存没有命中,于是向持久层数据库发起查询,发现也没有这个数据,于是本次查询失败

2021-04-14 21:23:53 172

原创 270-RBTree(红黑树)

RBTree(红黑树)红色节点不容许连续,黑色节点容许连续。根一定是黑色的,哨兵节点一定是黑色的。从任意节点出发到达哨兵节点的黑色节点个数要一致。红黑树近似于平衡。红黑树的定义typedef enum { RED = 0, BLACK = 1 } ColorType; typedef int KeyType;typedef struct rb_node{ rb_node *leftchild;//左孩子 rb_node *parent;//双亲 rb_node *rightc

2021-04-13 20:31:21 193

原创 269-AVL树(左,右双旋转)

AVL树(左,右双旋转)我们依次插入数据结点56,90,67。最后形成了“折线”,所以我们要进行双旋转我们依次插入数据结点78,34,45。最后形成了“折线”,所以我们要进行双旋转我们要求的中序遍历是从小到大,旋转之后使得每个节点的平衡因子尽可能向0靠拢。我们要借助左单旋转函数和右单旋转函数的能力来进行我们把34和45,以45为基准,进行左单旋转,34放下来,45放上去,再以45位基准,把78进行右单旋转。我们来看下面这个问题(a)是平衡二叉树,我们可能在D或者F或者G插入数据,如果

2021-04-13 19:47:09 442 3

原创 268-AVL树的学习(左,右单旋转)

AVL树(平衡二叉树)AVL树的定义代码:typedef int KeyType;typedef struct AVLNode{ AVLNode* leftchild; AVLNode* parent; AVLNode* rightchild; int balance; // -1 ,0 ,1(平衡因子) KeyType key;}AVLNode, * AVLTree;AVLNode* Buynode(KeyType kx){ AVLNode* s = (AVLNode*

2021-04-10 22:15:41 158 1

原创 267-二叉排序树中序遍历(非递归不用栈队列)

对二叉排序树中序遍历(非递归不用栈队列)找到这棵树的中序遍历的第一个节点相当于找这课二叉树的最小值BstNode* First(BstNode* ptr)//找到这棵树的中序遍历的第一个节点 { while (ptr != nullptr && ptr->leftchild != nullptr) { ptr = ptr->leftchild; } return ptr;}找到这棵树的中序遍历的最后一个节点相当于找这棵二叉树的最大值BstNode*

2021-04-10 21:32:36 1425

原创 266-Redis的主从复制

Redis的主从复制概念主从复制:指的是将一个Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower)。 数据的复制是单向的 ,只能从主节点到从节点。Master以写为主,Slave以读为主。默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或者没有从节点),但一个从节点只能有一个主节点。主就是写,从就是读,从上的数据是主结点复制给从结点的。在网络应用中,读是比较多的,从结点多。高可

2021-04-08 22:13:48 308

原创 265-Redis的发布订阅

Redis发布订阅Redis发布订阅(pub/sub)是一种 消息通信模式 :发布者(pub)发送消息,订阅者(sub)接受消息。应用: 微信、抖音等的关注系统!Redis客户端可以订阅任意数量的频道。我们先来了解一下消息队列中间件Redis发布/订阅模型发布/订阅消息图:下图展示了频道channel1,以及订阅这个频道的三个客户端 – client2 client5和client1之间的关系:当有新消息通过PUBLISH命令发送给频道channel1时,这个消息就会被发送给订阅

2021-04-08 21:51:45 124

原创 264-Redis的持久化

Redis的持久化Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘中,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化的功能。RDB (Redis DataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存中。(类似是把数据做一个副本保存下去)Redis会单独创建(fork)一个子进程来进程持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上一次持久化好的文

2021-04-08 21:18:58 129

原创 263-虚拟内存的地址翻译

虚拟内存的地址翻译地址翻译形式上来说,地址翻译是一个N元素的虚拟地址空间(VAS)中的元素和一个M元素的物理地址空间(PAS)中元素之间的映射,MAP:VAS->PAS U ∅这里下图展示了MMU如何利用页表来实现这种映射。CPU中的一个控制寄存器,页表基址寄存器(PTBR)指向当前页表。n位的虚拟地址包含两个部分:一个p位的虚拟页面偏移(VPO)和一个(n-p)位的虚拟页号(VPN),MMU利用VPN来选择适当的PTE。例如,VPN0选择PTE0,VPN1选择PTE1,以此类推。将

2021-04-06 22:55:00 620

原创 261-查找第一个只出现一次的字符

题目如下:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "解决代码如下int FirstNotRepeatingChar(string str){ map<char, int> mMap; for (char ch : str) { mMap[ch]++; } for (int i = 0; i < s

2021-04-04 20:14:53 114

原创 260-C++map的简单使用

C++的map用法总结map是STL的一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value)map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在map内部所有的数据都是有序的。比如一个班级中,每个学生的学号跟他的姓名就存在著一对一映射的关系。map的

2021-04-04 19:44:26 320

原创 259-虚拟内存的初步认识

在现代操作系统中,进程之间共享使用CPU和内存,但是内存资源有限,为了更加高效地使用内存,现代操作系统提供一个内存抽象—虚拟内存。虚拟内存巧妙地利用内存,地址转换,磁盘文件和操作系统内核来为每一个进程提供足够大的统一的私有地址空间。虚拟内存提供三个重要的能力:1、将内存当作磁盘的缓存,在内存中只保留常用数据,必要时从内存和磁盘之间交换数据。2、简化内存管理,为每个进程提供统一的地址空间。3、保护进程的内存空间不受其他进程影响。虚拟内存是计算机系统里的一个很棒的方案。它的实现对于程序员来说是透明的,但是程

2021-04-04 19:23:11 335

Memcached重要结构.doc

Memcached重要结构

2021-10-27

memcached-1[1].2.8.zip

memcaced安装包

2021-10-27

Memcached内存分析、调优、集群.ppt

Memcached内存分析、调优、集群.

2021-10-27

Memcached源码剖析笔记.pdf

Memcached源码剖析笔记

2021-10-27

BitTable实现.doc

BitTable实现

2021-10-27

C++实现线程池.cpp

C++版本实现线程池

2021-10-27

运动会管理平台(数据库大作业).zip

数据库课程设计-运动会管理平台

2021-10-27

计算机网络课程设计.zip

计算机网络课程设计(组网设计)

2021-10-26

libco协程库.zip

C++的libco协程库源代码和课件笔记

2021-10-26

md5源代码.zip

md5源代码,可用于文件加密解密,实现秒传功能,可用于哈希映射

2021-10-26

空空如也

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

TA关注的人

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