自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux内核链表

linux内核链表,struct list_head

2024-08-22 10:23:46 376 1

原创 C++ 常用STL底层原理

map,set,list,deque,vector,queue,stack

2024-08-17 16:30:35 654

原创 window10获得xxx权限删除文件夹,亲测有效

由于在网络是找了很多获得权限删除文件的博客,讲得太烂根本没什么用,没有一篇用的,什么更改为everyone,cmd命令强制删除全部都没有用;最后终于找到了可行的方法。亲测有效!

2024-07-18 19:56:51 346

原创 windows远程连接virtualbox的ubuntu的一系列问题

windows远程桌面连接virtualbox 虚拟机

2024-07-10 16:19:05 663

原创 c++ socket基于TCP

函数,指定要连接的服务器的地址和端口号,以建立与服务器的连接。函数会创建一个新的套接字,并返回该套接字的文件描述符,服务器可以使用该文件描述符与客户端进行通信。),并返回一个文件描述符,该描述符可以用于后续的套接字操作,如绑定地址、监听连接、发送和接收数据等。函数后,操作系统会创建一个新的套接字并返回其文件描述符,我们将这个文件描述符保存在。是一个整数类型的变量,但它关联了一个与客户端通信的套接字文件描述符。是一个整数类型的变量,但它实际上是用来代表与客户端通信的套接字的文件描述符。

2024-05-08 19:52:10 1035 1

原创 C++线程池

1. 什么是线程池线程池是一种多线程编程技术,用于管理和调度线程的集合。它包含了一组预先创建的线程,这些线程可以执行任务并处理工作队列中的任务。线程池的主要目的是提高线程的重用性和效率,以及降低线程创建和销毁的开销。例如:线程池就如公司,线程就是打工仔,任务就是工作,公司不会等到有工作才去招人,招人消耗的时间精力就是开销,打工仔排队等待上面下发工作(任务队列),接收到工作后去完成工作。线程池管理器(Thread Pool Manager):负责创建、销毁和管理线程池中的线程。

2024-04-28 20:54:03 685 3

原创 一篇搞定C++多线程

func,thread,mutex,atomic,semaphore,future,promise,condition_variable,packaged_task

2024-04-25 20:14:04 830 4

原创 初学C++STL容器

string,vector,deque,stack,queue,list。

2024-03-03 13:38:36 395

原创 C++模板

当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型。建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个。总结:类模板中成员函数类外实现时,需要加上模板参数列表。全局函数类外实现 - 需要提前让编译器知道全局函数的存在。如果函数模板和普通函数都可以实现,优先调用普通函数。如果想灵活指定出父类中T的类型,子类也需变为类模板。如果函数模板可以产生更好的匹配,优先调用函数模板。类模板没有自动类型推导的使用方式,注意!类模板在模板参数列表中可以有默认参数。

2024-03-02 20:18:08 358

原创 计算机组成原理——中央处理器CPU

小白也能看懂CPU

2023-01-31 20:56:17 1732

原创 操作系统实战 45 讲:运行HelloOS界面

Linux运行HelloOS简单的系统内核

2022-11-01 19:21:41 2648 1

原创 对大量的随机数排序——用文件排序

对100万个数字进行文件排序。

2022-10-24 15:49:00 558

原创 计算机组成原理——指令系统

操作数是指令执行的参与者,也就是各种操作的对象.与之有关的是操作码,所谓操作码是说明计算机要执行哪种,如传送,运算,移位,跳转等操作,它是指令中不可缺少的组成部分。间接寻址:形式地址D给出的不是操作数的有效地址,而是操作数的间接地址。D中的首位如果为1则还不是有效地址,如果为0则为下一个为有效地址。相对寻址:把程序计数器PC中的内容加上指令中的形式地址D,形成操作数的有效地址。寄存器寻址:操作数在CPU的某个通用寄存器中,形式地址D表示通用寄存器的编号,寄存器中的内容即所要的操作数。

2022-10-24 14:19:29 4794

原创 计算机组成原理——存储系统

大小端、内存读写原理、cache、虚拟存储MMU

2022-10-16 17:39:09 2190

原创 分享一下学习计划

以下链接是百度网盘的。一、《计算机科学概论》整体知识体系了解,内容比较难懂,个人是用纸质书籍阅读的。书籍链接:链接:https://pan.baidu.com/s/1A7jXCO6TjLq69X_gKxHDAw?pwd=cbvf提取码:cbvf二、《C Primer Plus》C/C++语言的基础,没学过也可以看得懂,个人是用纸质书籍阅读的。三、《编码:隐匿在计算机软硬件背后的语言》计算机偏硬件的知识基础,简单易懂,适合新手入门。书籍链接:链接:https://pan.baidu.com/s/1stIVd

2022-09-07 19:07:59 1567

原创 Linux下C语言实现俄罗斯方块——详细版

1、创建界面map数组边界填充值 1。2、rand生成随机数确定下移的图形。3、界面显示,通过移动光标输出确定界面位置。4、图形显示,通过光标移动输出图形,四个数据块每一块对应一个小方块。下一个输出next为 反L3:{(0,0), (1,0), (0,1), (0,2)}。5、图形下移,通过y变化改变位置下移。6、下移完成,判断图形到界面边界,将图形到达位置写入map, map填充值2。

2022-09-07 18:57:51 4903 17

原创 C语言:选择算法、归并排序、链表归并、堆排序

目录1.选择算法2.归并排序3.链表归并4.堆排序2.归并排序两种归并,自底向下和自顶向上。3.链表归并传入的链表是有序链表,从小到大传入。4.堆排序第一个堆排序没有完美的序列,仅仅是一个堆。第二个堆排序已经是一个完美的序列。...

2022-06-12 22:28:58 238

原创 C语言排序:交换排序、原位排序、关键字索引统计、快速排序、三路划分的快速排序。

目录1、交换排序2、原位排序3、关键字索引统计4、快速排序5、三路划分的快速排序2、原位排序3、关键字索引统计适用于重复数据多的。4、快速排序5、三路划分的快速排序适用于重复数据多的。1、运行输出1 1 3 4 1 2 3 4 2 3 4 0 0 1 2 //首先先确定元素位置 .2 1 1 0 1 0 1 2 3 3 4 3 4 2 4 //再分为三路,把比该数据大的放右边,小的放左边.1 0 0

2022-06-05 22:30:11 400

原创 C语言:冒泡排序、选择排序、插入排序、希尔排序、归并排序

目录1、冒泡排序2、选择排序3、插入排序4、希尔排序5、归并排序排序算法图解判断前后数据大小,如果前者大于后者,则交换。2、选择排序每次循环循环找到最小的,与第i个交换。3、插入排序4、希尔排序 h的值是不可以随意确定的,如果h为1、2、4、8······就会出现有些位置重复判断,有些位置始终不能判断;就好像奇数得不到判断,偶数重复判断,会降低运行效率。5、归并排序 本程序是将a数组作选择排序,b数组作插入排序。最后在归并到c数组中。 也可以将a

2022-05-30 21:53:51 218

原创 C语言双向链表

FindItem中查找是双向开始的,这里要考虑链表节点的奇偶情况。DeteleMax中要考虑链表中只有一项的情况。AddItem中分为两种情况:第一次和后面插入。1、函数的接口:list.h#ifndef LIST_H_#define LIST_H_#include<stdbool.h>typedef struct node { struct node* last; int item; struct node* next;}Node;typedef str

2022-05-29 21:56:48 273

原创 C语言二叉树

tree.h#ifndef _TREE_H_#define _TREE_H_#include <stdbool.h>/* 根据具体情况重新定义Item */#define SLEN 20#define MAXITEMS 10typedef struct item{ char petname[SLEN]; char petkind[SLEN];} Item;typedef struct trnode{ Item item; struct trnode* le

2022-05-22 17:00:20 326

原创 C语言队列

成功是从一次失败走向另一次失败,却不失热情。

2022-05-09 20:50:30 955 2

原创 C语言通过链表实现--栈

一、栈注释1.结构体构建定义了Item,Item中储存了一个字符串和总的栈数numb。定义Node节点,节点中有Item,和指向node的指针(用来链接上一项)。typedef struct{ char str[10]; int numb;}Item;typedef struct node{ Item item; struct node* next;} Node;typedef struct{ Node* head;}Stack;2.初始化pq传进..

2022-05-06 23:34:20 2329

原创 C语言链表

一、链表的步骤1.定义结构体struct film{ char title[TSIZE]; int rating;};typedef struct film Item;typedef struct node{ Item item; struct node* next;}Node;typedef struct{ Node* list;}List; //定义List是为了让地址可以顺利传入,以便初始化2.链表初始化voi..

2022-05-06 22:22:12 569

原创 C语言预处理和C库

一、#define1、#define TWO 2,把TWO的值初始化为数字2。2、#define STR "hello world!",str替换hello world!3、#define PX printf("x=%d",x),PX替换此内容;输出为:x=x的值。4、#define FOUR 2*2,FOUR为4。5、#define FOUR 2 * 2,FOUR 被解释为字符串。6、#define SQUARE(X) X*X,SQUARE(2)=4; SQ...

2022-05-01 20:28:49 228

原创 C语言实现FTP文件传输

一、要求FTP实则为两个程序的互相交流,把信息指令相互发送并处理。1.客户端请求下载文件 —把文件名发送给服务器。2.服务器接收客户端发送的文件名 —根据文件名找到文件,把文件大小发送给客户端。3.客户端接收到文件大小—准备开始接受,开辟内存,准备完成要告诉服务器可以发送了。4.服务器接受的开始发送的指令开始发送。5.开始接收数据,存起来,接受完成,告诉服务器接收完成。6.关闭连接。二、FTPclient1. ftpclient.h#pragma once#include &

2022-04-10 09:23:29 10752 10

原创 C语言结构体和其他数据形式

C语言结构体和其他数据形式一、结构体定义1、可声明在函数外。2、声明:struct book {char title[10];char author[10];float money;};3、book结构体由两个字符串数组和一个float类型变量组成的结构4、定义结a构体在函数内:struct book a;或struct (book) { }a;5、结构体与结构体中可以层层嵌套:struct book{struct title{ };};二、结构体使用1、初始化...

2022-04-01 22:10:13 586

原创 C语言文件的输入输出

一、文件反问途径1、文本模式程序所见的内容和文件实际内容不同。2、二进制模式 程序可以反问每个字节。二、fopen()函数1、FILE *fp;fp=fopen("文件名",“模式字符串")2、模式字符串 "r":以读模式打开文件。 "w":以写模式打开,删除文件中的内容,如果文件不存在,则创建一个新文件。"a":以写模式打开文件,在现有文件末尾添加内容,如果文件不存在,则创建一个新文件。 "r+":以更新文件模...

2022-03-20 19:05:31 4872

原创 C语言文件IO实现图书馆管理系统,登录、注册、借书、还书和新增书籍

#include<stdio.h> //图书馆管理系统面向多用户,最多可借十本书 #include<string.h> #include<stdlib.h>int main(void){ FILE *fp,*yh,*pt; int a=1,bookamount,i=0; long place; char number[10]; char simplebook[10],allbook[10][10]={"1","1","1","1","1","1.

2022-03-19 12:59:09 6669 17

原创 C语言储存类别、链接和内存管理

一、 储存类别 1、作用域 (1)、块作用域 块是花括号内的代码,块作用域变量的可见范围是从定义处到包含该定义的块的结尾。 (2)、函数作用域 仅用于goto语句的标签。 (3)、 函数原型作用域 用于函数原型中的型参名。 (4)、 文件作用域 变量定义在函数的...

2022-03-16 20:21:14 1190

原创 Python实现FTP简单的上传下载

clientimport osimport jsonimport structimport socketimport sysdef send_dic(sk1, dic, protocol=False): bytes_d = json.dumps(dic).encode('utf-8') # json.dumps()将python值转化json格式的数据字符串 if protocol: # true按你找协议执行send,false直接发送不要协议 le

2022-03-13 16:29:20 1206

原创 C语言字符串函数

字符串函数输入和输出stdio.h中gets(xx)输入丢弃/n,在末尾添加/0,但无法检查检查数组装的下输入。gets_s(xx,n)输入丢弃/n,会检查输入,读到超过n个字符串的输入,但可能导致程序退出。puts(xx) puts(&a[5])和puts( a+5)在第6个开始输出,输出自带/n,遇到/0停止输出。fgets(xx,n,指令)(1)一般输入fgets(xx,n,stdin):输入不丢弃/n,输入n-1个字符串,还有一个储存/n。(2)从文件中读入fgets(.

2022-03-12 23:23:32 1190

原创 浮点数的陷阱与解决

在计算机中所有的数字都是由二进制表示的,但有些浮点数用二进制是不能表示的,那么只能用二进制表示一个近似值,那么就出现了微小的误差,在有些方面这个是致命的错误。如何来避免呢?采用浮点数来处理小数(另外,也 有因“位溢出”而造成计算错误的情况)。作为程序的数据类型,不管 是使用单精度浮点数还是双精度浮点数,都存在计算出错的可能性。 接下来将介绍两种避免该问题的方法。(1)另一个策略是把小数转换成整数来计算。(2)BCD码

2022-03-11 21:47:08 870

转载 看完微软人员写的求平均值代码,我意识到自己还是too young了

取整求个无符号整数的平均值,居然也能整出花儿来?这不,微软大神Raymond Chen最近的一篇长文直接引爆外网技术平台,引发无数讨论:无数人点进去时无比自信:不就是一个简单的相加后除二的小学生编题吗? 没那么简单的求平均值先从开头提到的小学生都会的方法看起,这个简单的方法有个致命的缺陷:如果无符号整数的长度为32位,那么如果两个相加的值都为最大长度的一半,那么仅在第一步相加时,就会发生内存溢出。也就是average(0x80000000U, 0x80000000U)=0。不过解

2022-03-11 21:41:49 133

空空如也

空空如也

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

TA关注的人

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