自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (3)
  • 收藏
  • 关注

原创 C#基础学习笔记

字符常量是用单引号括起来的单个字节;​ 字符串类型:String 是引用类型,但对字符串常量有特殊处理:“abcd1234”、@“abcd”、Pqrst"​ 每个数组都有一个属性Length指明它的长度,例如:a.Length指明数组a的长度(元素个数)​ 使用数据类型要注意:引用类型与值类型是由其类型定义的,而不是由其使用决定的。​ 等价类型:int、double、bool、string。​ 引用类型包括:类类型、接口类型、委托类型、数组类型。​ 常量的值是固定的,直接写出来的,称字面常量。

2022-11-07 16:31:46 1314

原创 1、C#简介笔记

1、在WinForm中可通过控件(Control)来表示,如文本框(TextBox)、标签(Label);​ 这种方式称为B/S(Browser/Server)方式,这种方式在使用、部署上有独特的优势。保存:程序文件(.cs)、工程文件(.csproj)、解决方案(.sln)、其他辅助文件。界面设计(shift+F7):(插入对象,设其属性)(对象窗及属性窗)程序代码(F7):(双击对象,填写代码)(代码窗)​ 类定义:程序的基本组成部分师类(class)​ 语句的写法(英文格式下的分号)

2022-11-05 17:00:10 230

原创 libevent

libevent概述Libevent 是开源社区的一款高性能的 I/O 框架库,使用 Libevent 的著名案例有:高性能的分布式内存对象缓存软件 memcached,Google 浏览器 Chromium 的 Linux 版本。作为一个 I/O 框架库,Libevent 具有如下特点:◼ 跨平台支持。 Libevent 支持 Linux、Unix 和 Windows。◼ 统一事件源。Libevent 对 I/O 事件、信号和定时事件提供统一的处理。◼ 线程安全。Libevent 使用 libev

2022-03-07 17:56:42 359

原创 守护进程-

守护进程运行周期长,在后台运行,不和用户交互会话:会话是一个或多个进程组的集合。会话首进程:创建此会话的进程,会话首进程的进程ID是会话ID,首进程是其所在的进程组的组长进程,因为在其创建一个会话的同时已经变成了一个组长进程。进程组:每个进程属于一个进程组,进程组是一个或多个进程的集合,每个进程有一个唯一的进程组ID。组长进程:每个进程组可以有个组长进程,组长进程的ID就是进程组的ID;组长进程可以创建进程组以及该组中的进程;进程组的创建从第一个进程(组长进程)加入开始;进程组的组号取第一个加入组

2022-03-07 17:56:08 2273

原创 I/O 复用函数,poll,epoll

I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。通常, 网络程序在下列情况下需要使用 I/O 复用技术:◼ TCP 服务器同时要处理监听套接字和连接套接字。◼ 服务器要同时处理 TCP 请求和 UDP 请求。◼ 程序要同时处理多个套接字。◼ 客户端程序要同时处理用户输入和网络连接。◼ 服务器要同时监听多个端口。需要指出的是,I/O 复用虽然能同时监听多个文件描述符,但它本身是阻塞的。并且当多个文件描述符同时就绪时,如果不采取额外的措施,程序就只能按顺序依处理其中的每一

2022-03-07 17:55:03 2534

原创 网络编程—

1.1网络:​ 网络是由若干结点和连接这些结点的链路组成,网络中的结点可以是计算机,交换机、路由器等设备。​ 网络设备有:交换机、路由器、集线器传输介质有:双绞线、同轴电缆、光纤1.2互联网:​ 把多个网络连接起来就构成了互联网。目前最大的互联网就是我们常说的因特网。1.3IP地址:​ IP 地址就是给因特网上的每一个主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的标识符。IP 地址因其特殊的结构使我们可以在因特网上很方便地进行寻址。​ IP 地址有分 IPV4 和 IPV6 ...

2021-12-13 18:18:34 1629

原创 面向对象—

1.面向对象:使用代码在计算机中模拟现实世界当中的事物​ 抽象:将现实世界中的属性抽象成一种特征​ 抽象---->属性+行为​ class—>变量+方法​ 封装:将抽象的东西放进一个类中​ 类:可以看作是struct结构体的升级版​ 面向对象的三大特征:封装、继承、多态​ 面向对象的四大特征:抽象、封装、继承、多态#ifndef MARR_H#define MARR_H#include<iostream>using namespace std;cla

2021-12-13 18:03:10 800

原创 --线程---

1.线程是进程内部的一条执行序列或执行路径,一个进程可以包含多条线程。​ 线程是一个进程内部的一个控制序列。​ 线程的实现有以下三种方式:​ 内核级线程:创建开销大,由内核直接管理,可以使用多个处理器​ 用户级线程:创建开销小,可以创建很多,无法使用多个处理器​ 组合级线程1.1为什么需要线程?<1>.提高应用程序的响应速度,并发操作时使用<2>.使用线程提高CPU利用率1.2线程函数/* pthread_create()用于创建线程 thread: 接

2021-12-04 19:32:13 480

原创 c语言与c++

1.c+±>c plus plus#include<iostream>//输入输出流using namespace stu;命名空间namespace Type{ typedef int INT; typedef char CHAR;};using namespace Type;//可以访问namespace Type内所有成员using Type::INT;//仅访问namespace Type内INT输入输出cout<<a<&l

2021-11-28 21:12:19 645

原创 树与二叉树概念

树树形结构是一类重要的非线性数据结构。树是以分支关系定义的层次结构1.树的定义:树是n(n>=0)个结点的有限集。2.结点:就是图的顶点。3.枝:就是图的边。4.根 :一颗树可以想象成从某一个顶点开始进行分枝,那么这个顶点就是“根”。一颗树的每一个节点都可以作为根。5.叶:在一颗树上选定根后,如节点0作为根。由根开始不断分枝,途中所有无法再分枝的节点成为叶。6.度:一个节点拥有的子树数称为节点的度。7.层/深度/高度 :在一颗树中选定根后,按照每个点离根的距离,可以将树中的点分为多个

2021-11-27 21:15:50 1041

原创 生产者消费者

生产着生产的由消费者消费,只有生产者生产了,消费者才能消费一个进程代表生产者,一个进程代表消费者,一片内存代表中介,生产者生产的物品从一端放入内存,消费者从其中获取物品使用信号量和互斥锁,代码示例:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<semaphore.h>#include<string.h>#include<time.h>#inc

2021-11-27 20:57:40 81

原创 消息队列-

1.消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。1.1msgget函数【创建和访问一个消息队列】int msgget(key_t key,int msgflg);1.2msgsnd函数【添加】int msgsnd(int msqid,const void* msg_ptr,size_t msg_sz,int msgflg);​ msqid是由msgget函数返回的消息队列标识符​ msg_ptr是由一个指向准备发送消息的指针​ msg_sz是msg_ptr指向的消息的长度

2021-11-27 20:56:47 179

原创 信号量--

1.信号量:同步进程为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。​ 临界区:访问临界资源的代码端​ 临界资源:同一时刻只允许一个进程访问的资源信号量是一个特殊的变量,程序对其访问都是原子操作,且只允许对它进行等待(即P(信号变量))和发送(即V(信号变量))信息操作。​ p 减一,获取资源​ v 加一,释放资源最简单的信号量是只能取0和1的变量,这也是信号量最常见的一

2021-11-27 20:55:57 1100

原创 管道---

1.管道管道可以用来在两个进程之间传递数据,如: ps -ef | grep “bash”, 其中‘|’就是管道,其作用就是将ps 命令的结果写入管道文件,然后 grep 再从管道文件中读出该数据进行过滤。2.有名管道有名管道可以在任意两个进程之间通信有名管道的创建:1>命令创建: mkfifo FIFO2>系统调用创建#include <sys/types.h>#include <sys/stat.h>//filename 是管道名 mode 是创建的

2021-11-27 20:55:01 154

原创 【无标题】

1.操作文件的系统调用 : open,read,write,closefopen()->会调用 openint fd=open(“file.txt”,O_WRONLY|O_CREAT,0600); 6代表读写只写 ,如果没有就创建write(fd,"hello",5);close(fd);int fd=open(“file.txt”,O_RDONLY);只读char buff[128]={0};int n=read(fd,buff,127);printf("buff=%s

2021-11-27 20:53:55 90

原创 进程复制与替换

1.printf函数输出printf 函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有一下三种情况满足,才会输出到屏幕。1) 缓冲区满2)强制刷新缓冲区 fflush3) 程序结束时#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int argc, char* argv[],char* envp[]) { printf("hello"); //fflush(st

2021-11-27 20:53:07 517

原创 堆排、快排

1.堆排小顶堆:父节点的值<孩子节点的值【从大到小】大顶堆:父节点的值>孩子节点的值【从小到大】如果需要升序排序,则需要大顶堆,则将去数据调整为大顶堆,再将根节点和最后一个已知节点交换,然后重复此操作,直到剩余一个节点。时间复杂度:O(nlog2 n) 空间复杂度:O(1)稳定性:不稳定【存在跳跃交换】//这个函数:调整一次大顶堆 时间复杂度O(log2n)void AdjustHeap(int arr[], int start, int end){ assert(ar

2021-11-27 19:32:20 409

原创 2021-11-13

1.基本组成1.1五大部件(1) 运算器:也叫算数逻辑单元,完成对数据的各种常规运算,如加减乘除,也包括逻辑运算,移位,比较等。(2) 控制器 :它是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。(3) 存储器 :存储程序和各种数据。(4) 输入设备:把人所熟悉的信息如,图片,声音,文字,转换为计算机能够识别的信息存储起来。(5) 输出设备 : 把计算机机能识别的信息转换为人能识别的信息,进行呈现。1.2系统总线(1) 数

2021-11-13 20:40:05 101

原创 2021-11-13

1.库:库是一组预先编译好的方法的集合Linux 系统存储的库的位置一般在:/lib 和 /usr/lib。在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在/usr/include 下或其子目录下。库有两种:一种是静态库,其命令规则为 libxxx.a,一种是共享库,其命令规则为 libxxx.so2.静态库以下是需要生成静态库的”.c”文件,其中“foo.h”中是函数的声明,“add.c”和“max.c”是函数的定义:第一步:先将需要生成库文件的所

2021-11-13 20:38:10 696

原创 基数、二路归并排序

1.基数排序将所有数据从左向右,依次按照低位优先,全部进入到桶内,再从桶内取出时间复杂度:O(dn) 空间复杂度:O(dn)稳定性:稳定void Get_Figure_Max(int *arr,int len){ int max = arr[0]; for(int i=1; i<len; i++) { if(arr[i] > max) { max = arr[i]; } } int count=0; while(max!=0)

2021-11-12 16:23:59 905

原创 直接插入、希尔排序

1.直接插入排序:依次从待排序序列中取值,向已排序排序中放,保证再次完全有序,直到将待排序序列中所以值取完时间复杂度:O(n^2) 空间复杂度:O(1)稳定性:稳定int count = 0;void InsertSort(int arr[], int len){ int tmp = 0; int j;//j代表的是已排序序列中需要和tmp比较的值 for(int i=1; i<=len-1; i++)//i代表的是未排序序列中此次需要插入的值(变稳定) { t

2021-11-10 19:12:50 977

原创 冒泡、选择排序

1.冒泡排序两两比较,大的向后挪动时间复杂度O(n^2) 空间复杂度O(1)稳定性:稳定优缺点:​ 缺点:时间复杂度大​ 优点:实现简单 稳定void BubbleSort(int *arr, int len){ assert(arr!=NULL); for(int i=0; i<len-1; i++)//控制轮数 { for(int j=0; j<len-1-i; j++)//控制每一轮比较的次数 { if(arr[j] > arr[j+1])

2021-11-04 20:31:49 62

原创 字符串匹配

1.串:字符串,0个或多个字符序列字符串求长度 strlen字符串比大小 strcmp strncmp字符串连接 strcat字符串拷贝 strcpy字符串匹配 BF(brute force 暴力算法 朴素算法)​ KMP(对BF算法的优化)2.子串和真子串的区别? 真子串不包括自身​ 空串和空格串的区别? “” " "3.“abcd”" " “a” “b” “c” “d”“ab” “bc”

2021-11-04 17:37:01 252

原创 Linux的gcc

1.gcc分步编译链接(1) 预编译 : gcc -E main.c -o main.i(2) 编译: gcc -S main.i -o main.s(3) 汇编: gcc -c main.s -o main.o(4) 链接: gcc main.o -o main多文件编译链接:【gcc -o main main.c max.c add.c】2.编译链接过程(1)预编译阶段a) 删除所有的“#define”,并且展开所有的宏定义;b) 处理所有的条件预编译指令,“#if”、“

2021-10-12 23:38:52 767

原创 Linux基础命令

1.文件类型普通文件 ‘-’目录文件 ‘d’管道文件 ‘p’链接文件 ‘l’设备文件(块设备 ’b’ 、字符设备 ‘c’)套接字文件 ‘s’权限:r 读 4 w 写 2 x 执行 1 - 无 02.基础命令2.1>chmod 改权限u 表属主 g 同组人 o 其他人 a 所有人 “+”表示增加权限 “-”表示去掉权限2.2>pwd 显示当前位置的绝对路径2.3>cd 切换目录,c

2021-10-12 23:36:03 111

原创 栈与队列(+题)

1.栈栈是限定仅在表尾进行插入或删除操作的线性表。(受到限制的线性表)​ 是一种先进后出,后进先出(LIFO)的数据结构对栈来说,表尾端有其特殊含义,称为栈顶,相应地,表头端称为栈底。不含元素的空表称为空栈。2.顺序栈struct Stack{ int *base;//栈底指针 int top;//既是元素个数,也是下一个插入元素的下标 //int* top;//指针—指针=个数 stacksize;};stack.h#pragma once//

2021-10-12 23:23:07 194

原创 Linux介绍

1.Linux和Windows的区别a>Linux主要使用命令行操作系统,Windows图形化b>Linux主要应用于服务器,Windows是个人操作系统【服务器上面不会安装图形化界面】c>Linux属于开源项目,而Windows不开源【Linux用C语言写,源代码面向全世界开放,没有后门;Windows用C++写的,微软未向全世界开放。】d>Linux是多用户系统,Windows是单用户系统【Linux可多用户同时登陆,Windows不可以】2.Linux系统的目录结

2021-10-08 20:58:40 77

原创 线性表和一些题

1.线性表是最常用且最简单的一种数据结构。1>存在唯一的一个北城做“第一个”的数据元素;2>存在唯一的一个被称做“最后一个”的数据元素;3>除第一个之外,集合中的每个数据元素均只有一个前驱;4>除最后一个之外,集合中每个数据元素均只有一个后继。2.定长顺序表sqlist.h#pragma once//定长的顺序表结构体定义typedef struct Sqlist{ int arr[10];//数据域 int length;//有效数据节点的个数}Sql

2021-09-30 10:51:36 122

原创 HashTable

1.哈希表理想的情况下是希望不经过任何比较,一次存取便能得到所查记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。因而在查找时,只要根据职工对应关系f找到给定值K的像f(K)。若结构中存在关键字和K相等的记录,则必定在f(K)的位置上,由此,不需要进行比较便可直接取得所查记录。在此,我们称这个对应关系f为哈希函数,按这个思想建立的表为哈希表。2.常用的构造哈希函数的方法1)直接定值法取关键字或关键字的某个线性函数值为哈希地址。H(

2021-09-26 20:47:15 134

原创 2021-09-21

SeqStack.h#ifndef MYSEQLIST_H#define MYSEQLIST_H#define INIT_SEQ_SIZE 10#define INC_SEQ_SIZE 2typedef int SElemType;;struct SeqStack{ SElemType* base;//base------> int maxsize; //maxsize 10 int top; //top -1};bool In

2021-09-21 11:08:20 79

原创 2021-09-21

void funa(int x) // 返回类型 + 形参列表{ printf("%d ", x);}void funb(int a){ printf("%d ", a);}int main(){ void (*pfun)(int) = nullptr; pfun = funa; pfun = funb; return 0;}void* PrintInt(const void* p){ const int* ip = (int*)p; printf...

2021-09-21 09:31:35 98

原创 数据结构基础概念和时间空间复杂程度

1.数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。它是计算机加工的“原料”。2.数据元素:是数据的基本单位在计算机程序中通常作为一个整体进行考虑和处理。3.数据对象:是性质相同的数据元素的集合,是数据的一个子集。4.数据结构:是互相之间存在一种或多种特定关系的数据元素的集合。1>集合2>线性(现实生活中的排队)3>树形(学校架构,族谱)4>图形(交通网络,六度分割理论,网络拓扑)5.时间复杂度:执行语句与问题规模之

2021-09-10 20:20:03 97

原创 CJSON

1.JSON简介 XML protobuffJSON(JavaScript Object Notation)是-种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition 二December 1999的一个子集。JSON 采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C+ +, C#, Java, JavaScript, Per,

2021-09-10 15:18:53 1710

原创 RadisSDS

1.Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串( simple dynamic string. SDS )的抽象类型,并将SDS用作Redis的默认字符串表示。在Redis里面,C字符串只会作为字符串字面量(stringliteral)用在–些无须对字符串值进行修改的地方,比如打印日志:redisLog (REDIS_ WARNING, “Redis is now ready to exit,bye bye…”);当R

2021-09-09 19:39:08 98

原创 QuickSort

以56为基准,left向右移right向左移,若小于56,则覆盖0下标的56,然后left+1,right-1;若大于56,left+1,right-1。int Partition(int* ar,int left,int right)//划分函数{ assert(ar!=nullptr); int tmp=ar[left]; while(left<right) { while(left<right&&ar[right]&gt.

2021-09-08 20:16:05 130

原创 2021-09-07

1.main主函数的形参int main(){}int main(int argc, char* argv[]){}argc:将应用程序作为字符串*argv[]:数组,存放地址;在主函数中开辟空间int main(int argc, char* argv[], char* engv[]){}argc:将应用程序作为字符串*argv[]:数组,存放地址;在主函数中开辟空间*engv[]:当前系统环境变量int main(int argc,char *argv[]){ p

2021-09-07 08:43:04 68

原创 文件(C语言)

1.文件(file) 指存储在外部介质上数据的集合,比如我们经常使用的txt、bmp、 jpg、 exe、 rmvb 等等。这些文件各有名的用途,我们通常将它们存放在磁盘或者可移动盘等介质中。文件无非就是一段数据的集合,这些数据可以是有规则的集合,也可以是无序的集合。操作系统也就是以文件为单位对数据进行管理的。也就是说,要访问外部介质上的数据,必须先按照文件名进行查找,然后从该文件中读取数据。要想写数据到外部介质,必须得建立-个文件,然后再写入。2.文件一般包括三要素:文件路径、文件名、后缀。由于在C

2021-09-07 08:41:34 2902

原创 2021-09-04

1.函数类型int Inc(int a){ return a+1;}int Add_Int(int a,int b)//函数的类型 返回类型+形参列表{ return a+b;}int Mul_Int(int x,int y){ return x*y;}int main(){ int fun(int,int); int (*pfun)(int,int); int (*pfun)(int,int)=NULL return 0;}

2021-09-04 10:19:27 138

原创 2021-09-02

1.函数类型int Inc(int a){ return a+1;}int Add_Int(int a,int b)//函数的类型 返回类型+形参列表{ return a+b;}int Mul_Int(int x,int y){ return x*y;}int main(){ int fun(int,int); int (*pfun)(int,int); int (*pfun)(int,int)=NULL return 0;}

2021-09-02 16:11:56 123

原创 2021-09-02

1.callocint main(){ int n=5; //int *ip=(int*)malloc(sizeof(int)*n); int *ip=(int*)calloc(sizeof(int)*n); for(int i=0;i<n;i++) { printf("&x\n",ip[i]);//ip[i]=>*(ip+i)//加一表示加了一个整形字节数 } free(ip);//释放的是ip所指向的空间还给

2021-09-02 15:10:02 144

学习笔记Day3.md

学习笔记Day3.md

2021-06-04

学习笔记Day2.md

学习笔记Day2.md

2021-06-04

学习笔记Day1.md

学习笔记Day1.md

2021-06-03

空空如也

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

TA关注的人

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