- 博客(82)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 链表常见面试题总结
链表常见面试题总结:/**********头文件************/#pragma once typedef int DataType;typedef struct SListNode{ DataType _data; struct SListNode* _pNext;}Node,*PNode;void SListInit(PNode* p...
2018-08-03 22:55:31
556
原创 git的使用
git clone 下载的链接 (将文件下载下来)git init 初始化本地当前目录的git仓库git add -A 增加目录中所有的文件到缓存区git add 文件 增加相应文件到缓存区git commit 将缓存区中更改提交到本地仓库git push 会将本地仓库中HEAD所指向的版本存放到远程仓库git log 查看当前版本之前的提交记录git branch -b...
2020-01-14 16:11:49
238
原创 表的CRUD
增加(Create)、读取查询(Retrieve)、更新(Update)、删除(Delete)--------------- 增删查改 --------------一.增加 insert intoinsert into ta_name[不写,默认全部属性] values(数据),...二.改 updateupdate 表名 set 要修改的列名=修改后的值,... [where 条...
2018-10-02 18:13:22
793
原创 表
--------------数据类型-------------1.数值型整数:tinyint(-128 - 127)tinyint unsinged (0-255)int(32),bigint(64);浮点数:float(M,N);#精度7位decimal(m,n);#精度64位,M表示总长度,N表示小数位数decimal(m,n)unsigned;#负数去掉 正数不变2.文...
2018-10-02 14:00:02
227
原创 库操作&表操作
--------------库操作-----------------show databases; #展示库show tables; #展示表create table linux( #创建表 name varchar(10), passward varchar(6));insert into linux values('张飞','123456');#插入元素...
2018-10-02 13:42:56
260
原创 HTTP项目
#include <stdio.h>#include <string.h>#include <stdlib.h> //NULL#include <pthread.h>#include <unistd.h>#include <sys/socket.h&a
2018-08-30 21:40:37
776
原创 文件压缩
项目名称:文件压缩开发环境:VS2013 使用语言:C/C++项目技术:Huffman树,I/O流,模板,String容器,文件操作等项目描述: <1>.文件压缩过程:先统计文件中每个ASSCII码出现的次数,采用贪心算法,用文件中ASCII码出现的次数构建Huffman树,生成每个ASCII所对应的Huffman编码,然后将原文件中的ASCII码,替
2018-08-19 21:00:36
404
原创 poll与epoll
pollpoll函数接口#include <poll.h>int poll(struct pollfd *fds,nfds_t nfds,int timeout);//参数1 结构体指针(结构体数组的首地址) //参数2 数组长度//参数3 poll函数的超时时间(同select)//返回值小于0,出错,等于0,poll函数等待超时//大于0,表示pol...
2018-08-19 15:21:01
716
原创 select
selectselect系统调⽤是⽤来让我们的程序监视多个⽂件描述符的状态变化的;程序会停在select这⾥等待,直到被监视的⽂件描述符有⼀个或多个发⽣了状态改变;#include &amp;amp;lt;sys/select.h&amp;amp;gt;int select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,st...
2018-08-18 16:15:29
227
原创 高级IO
阻塞IO 在内核将数据准备好之前, 系统调⽤会⼀直等待. 所有的套接字, 默认都是阻塞⽅式⾮阻塞IO 如果内核还未将数据准备好, 系统调⽤仍然会直接返回, 并且返回EWOULDBLOCK错误码,⾮阻塞IO往往需要程序员循环的⽅式反复尝试读写⽂件描述符, 这个过程称为轮询. 这对CPU来说是较⼤的浪费, ⼀般只有特定场景下才使⽤信号驱动IO 内核将数据准备好的...
2018-08-18 00:07:34
242
原创 数据链路层
数据链路层:⽤于两个设备(同⼀种数据链路节点)之间进⾏传递 代表物:网桥,交换机 协议:MAC,PPP,FR,HDLR,VLAN以太网“以太网” 不是⼀种具体的网络, ⽽是⼀种技术标准; 既包含了数据链路层的内容, 也包含了⼀些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制⽅式, 传输速率等;例如以太网中的网线必须使⽤双绞线; 传输速率有10M, 100M, 100...
2018-08-17 15:07:46
305
原创 网络层
网络层功能:地址管理,路由选择 网络层协议:IP,ICMP,ARP等IP协议 (IPV4(主),IPV6)IP协议头格式 4位版本号: 指定IP协议的版本, 对于IPv4来说, 就是44位头部⻓度: IP头部的⻓度是多少个32bit, 也就是 length * 4 的字节数. 4bit表⽰最⼤的数字是15, 因此IP头部最⼤⻓度是60字节. 8位服务类型: 3位优先...
2018-08-17 01:18:13
1538
原创 传输层
TCP(Transmission Control Protocol):传输控制协议TCP协议段格式32位序列号:数据包编码4位TCP报头⻓度: 表⽰该TCP头部有多少个32位bit(有多少个4字节); 所以TCP头部最⼤⻓度是15 * 4 =60 URG: 紧急指针是否有效 ACK: 确认号是否有效 PSH: 提⽰接收端应⽤程序⽴刻从TCP缓冲区把数据读⾛ ...
2018-08-16 19:24:33
583
原创 应用层
URL(网址) 登录信息已经看不到啦 HTTP协议下服务器端口号不写默认为80 ?号后边为查询字符串:每个键值对用&amp;amp;amp;amp;amp;amp;隔开,键和值用=隔开 域名&amp;amp;amp;amp;amp;lt;例:baidu&amp;amp;amp;amp;amp;gt;与IP地址&amp;amp;amp;amp;amp;lt; 16位点分十进制 &amp;amp;amp;amp;amp;
2018-08-16 12:47:14
313
原创 基于TCP的服务器
Liunx/***************** server.c *******************/#include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; ...
2018-08-15 17:24:40
346
原创 网络编程套接字
linux操作系统IP地址 IP地址是⼀个4字节, 32位的整数,通常也使⽤ “点分⼗进制” 的字符串表⽰IP地址端口号 端口号是一个2个字节16位的整数,用来标识一个进程。IP地址+端口号能够标识网络上的某一台主机的某一进程; 一个进程可以绑定多个端口号,但一个端口号不能被多个进程绑定。网络字节序 内存中的多字节数据相对于内存...
2018-08-15 15:06:46
313
原创 二叉树(2)
/****************** "BTree.h" ************************/#pragma once#include "Queue.h"typedef char BTDataType;typedef struct BinTreeBTNode{ struct BinTreeBTNode* _pLeft; struct Bin...
2018-08-13 21:32:01
486
原创 二叉树(1)
/******************* "BinTree.h" ***********************/#pragma oncetypedef char BTDataType;typedef struct BinTreeBTNode{ struct BinTreeBTNode* _pLeft; struct BinTreeBTNode* _pRight...
2018-08-13 21:26:28
466
原创 智能指针及其实现
智能指针:不需要用户去考虑申请的空间什么时候释放(将可以解决这个问题的指针成为智能指针)RAII(Resource Acquisition Is Initialization) RAII(资源分配即初始化)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。 即(定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构...
2018-08-12 00:59:13
413
原创 C++异常处理
C++异常处理方式 1 . 终止程序(除数为0) 2 . 返回一个表示错误的值,附加错误码(GetLastError()) 3 . 返回一个合法值,让程序处于某种非法的状态(坑爹的atoi()) 4 . 调用一个预先准备好在出现”错误”的情况下用的函数(回调函数) 5 . 暴力解决方式:abort()或者exit() 6 . 使用goto语句 7 ....
2018-08-11 14:59:34
309
原创 C++模板
泛型编程 泛型编程:编写与类型无关的逻辑代码,是代码复用的一种手段。模板是泛型编程的基础函数模板模板分类:函数模板、类模板概念 函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本函数模板格式 template &lt; typename T1, typename T2,……,cl...
2018-08-11 13:17:30
352
原创 C++多态
多态:具有多种形态,在不同的条件下,有不同的状态1、静态多态(静态链编译,静态绑定,早绑定) 静态多态是编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推断出要调用那个函数,如果有对应的函数就调用该函数,否则出现编译错误函数重载相关知识点//函数重载举例int Add(int left, int right){ ...
2018-08-10 20:39:26
388
原创 C++继承
C++内存管理认识内存中的堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 堆:就是那些由 new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个 de...
2018-08-10 02:10:26
301
原创 c和c++的区别
c是面向过程的,数据与算法分开。它的重点在于算法和数据结构。侧重于计算机底层操作。 c++是面向对象的,主要特点是类,封装和继承。与C的区别主要为 :类、继承和多重继承、运算符重载、类模板、C++标准库、模板库。 C++是C的超集,也可以说C是C++的子集,因为C先出现。按常理说,C++编译器能够编译任何C程序,但是C和C++还是有一些小差别。 例如C++增加了C不...
2018-08-08 17:50:55
8202
原创 探索new/malloc 、delete /free区别
C内存管理堆上 C语言中使用malloc/calloc/realloc/free进行动态内存管理,malloc/calloc/realloc用来在堆上开辟空间,free将申请的空间释放掉 堆上的内存需要用户自己来管理,动态malloc/calloc/realloc的空间,必须free掉,否则会造成内存泄露探索malloc、calloc、realloc区别...
2018-08-08 17:19:24
367
原创 友元
友元分为:友元函数和友元类友元函数 友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字。 1.友元函数可访问类的私有成员,但不是类的成员函数 2.友元函数不能用const修饰 3.友元函数可以在类定义的任何地方声明,不受类访问限定符限制 4.一个函数可以是多个类...
2018-08-08 11:39:27
467
原创 内联函数与宏函数的区别
内联函数概念 以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率特性 inline是一种以空间换时间的做法,省去调用函数额开销。所以代码很长或者有循环/递归的的函数不适宜使用内联 2.inline对于编译器而言只是一个建议,编译器会自动优化,如果定义为inline的函数体内...
2018-08-07 22:04:20
5212
1
原创 类的六个默认成员函数、const、static用法
1.构造函数构造函数概念 构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时,由编译器自动调用,在对象的生命周期内只调用一次,保证每个数据成员都有一个合适的初始值构造函数特性 1.函数名与类名相同 2.没有返回值 3.新对象被创建时,由编译器自动调用,且在对象的生命周期内仅调用一次 4.构造函数可以重载,实参决定了调用...
2018-08-07 21:03:49
673
原创 类对象模型
类—-&gt;实例化—-&gt;对象 类有大小(只包含成员变量大小),没有实际空间。空类大小为1(区分类对象)。类的实例化 用类类型创建对象的过程,称为类的实例化 1. 类只是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它 2. 一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间存储类成员变量 3....
2018-08-07 15:20:13
2347
原创 引用&指针、传值&传引用&传址的区别
引用概念(贴标签式) 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间 类型&amp;amp; 引用变量名(对象名) = 引用实体;使用场景 1.作为函数形参 2.作为函数返回值注意事项 a. 引用在定义时必须初始化 b. 一个变量可以有多个引...
2018-08-07 13:30:45
1617
原创 C++函数重载
1.C与C++函数对比:返回值: C语言函数缺省返回值,默认为int。 C++不支持函数返回值缺省,如果一个函数没有返回值则必须指定为void。参数列表: 在C语言中,函数没有指定参数列表时,默认可以接收任意多个参数。 在C++中,因为严格的参数类型检测,没有参数列表的函数,默认为void,不接收任何参数。但C++参数列表中可以存在缺省参数,C语言不可...
2018-08-06 18:55:07
517
原创 队列的基本操作
引用块内容 引用块内容#if 0#include &lt;stdio.h&gt;#include &lt;assert.h&gt;#include &lt;sydlib.h&gt;#define MAX_SIZE 10typedef int DataType;typedef struct Queue{ DataType _array[MAX_S...
2018-08-04 00:36:19
2046
原创 栈的基本操作
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。不含任何元素的栈称为空栈,栈又称为后进先出的线性表。压入push和弹出pop!插入是增加数据,弹出是删除数据,这些操作只能从栈顶即最低地址作为约束的接口界面入手操作 栈的分类:顺序栈,链式栈,下面代码为顺序栈#pragma once#include...
2018-08-03 23:26:16
753
原创 堆排序
堆排序 堆排序:是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。 是否稳定:不稳定 时间复杂度:O(N*lgN) 空...
2018-07-29 12:55:30
304
文件压缩源码
2018-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人