自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪吃蛇小游戏

MOVE__BOX部分:代码如下#include<iostream>#include<Windows.h>#include <conio.h>using namespace std;void PutPlace(int x,int y);//设定输出位置void color(int a);//设定输出颜色//设定输出位置void PutPlace(int x, i...

2018-04-17 20:05:58 266

原创 八大排序-插入排序-希尔排序

希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。操作方法:选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1; 按增量序列个数k,对序列进行k 趟排序; 每趟排序,...

2018-08-19 16:28:38 233

原创 八大排序-插入排序-直接插入排序

基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界之用。直接插入排序示例:如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列...

2018-08-19 16:20:02 245

原创 深入理解FTP协议

深入理解FTP协议  文件传输协议FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议。FTP使用交互式的访问,允许客户指定文件的类型和格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。  文件传输协议有基于TCP的FTP和基于UDP的简单文件传输协议TFTP,它们都是文件共享协议中的一大类,即...

2018-08-17 18:20:56 389

原创 BSS、数据段、代码段、堆区、栈区

BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。 数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。 代码段:代码段(code segment/tex...

2018-08-02 16:21:31 408

原创 Nagle算法

Nagle算法的规则:(1)如果包长度达到MSS,则允许发送;(2)如果该包含有FIN,则允许发送;(3)设置了TCP_NODELAY选项,则允许发送;(4)未设置TCP_CORK选项时,若所有发出去的小数据包(包长度小于MSS)均被确认,则允许发送;(5)上述条件都未满足,但发生了超时(一般为200ms),则立即发送。Nagle算法只允许一个未被ACK的包存在于网络,它...

2018-08-02 14:59:39 1716

原创 STL知识点总结

STL笔试面试题总结STL有哪些组件STL提供六大组件,彼此可以组合套用:1、容器容器就是各种数据结构,我就不多说,看看下面这张图回忆一下就好了,从实现角度看,STL容器是一种class template。2、算法各种常见算法,如sort,search,copy,erase等,我觉得其中比较值得学习的就是sort,next_permutation,partition,merg...

2018-07-31 21:45:19 598

原创 cadel fastcall stdcall

__cdecl __fastcall与__stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈。2、_cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含...

2018-06-04 00:22:17 174

原创 引用&与const

引用:就是某一变量(目标)的一个别名,对引用的操作与变量直接操作完全一样引用的声明方法:类型标识符 &引用名=目标变量名例如:int a; int &ra=a;   //定义引用ra,它是变量a的引用1.&在此不是求地址运算,而是起标识的作用2. 类型标识符是指目标变量的类型(一个变量可以有多个别名)3. 声明引用时,必须同时对其进行初始化4. 引用声明完毕后,相当于目标变...

2018-05-22 23:50:35 442

原创 字节对齐----结构体、共用体

字节对齐结构体字节对齐:(结构体成员的数据类型为基本数据类型(int,double,char,short,long等))结构体的总大小是结构体成员中最宽基本数据类型大小的整数倍#include<iostream>using namespace std;struct S0{    int a;char b;short c;};struct S1{char b;int a;short c;...

2018-05-21 00:37:02 794

原创 函数指针和指针函数的区别

指针函数 : 指带指针函数,即本质是一个函数,函数返回类型为某种类型的指针类型标识符* 函数名(参数列表)int* f(x,y);首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。int *f(x,y);int *p=NULL;p=f(x,y);输入第几周的第几天...

2018-05-16 22:48:24 308

原创 数组指针和指针数组的区别

数组指针:a pointer to an array ,指向数组的指针指针数组:array of pointer ,用于存储指针的数组,即数组元素都是指针int (*p)[6]    数组指针  :表示指向数组a的指针  元素表示:(*a)[i]  (指向一维数组的指针,也成行指针)int* p[6]     指针数组  :表示数组a中的元素都是int *型,即int型指针   元素表示:*(a[...

2018-05-15 23:36:41 430

原创 python学习笔记(4)

函数定义和调用函数就是最基本的一种代码抽象的方式(python有许多内置函数)调用:要调用一个函数,需要知道函数 的名称和参数比较函数cmp(x,y)就需要两个参数,如果x<y,就返回-1,如果x==y,就返回0,如果x>y就返回1数据类型转换函数,不如int()函数可以把其他数据类型转换为整数>>>int(‘123’)123>>int(12.34)12例...

2018-05-13 22:43:39 219

原创 I/O复用的理解

I/O复用就是单个线程通过记录跟踪每一个Sock(I/O流)的状态来同时管理多个I/O流.假设你是一个机场的空管, 你需要管理到你机场的所有的航线, 包括进港,出港, 有些航班需要放到停机坪等待,有些航班需要去登机口接乘客。你会怎么做?最简单的做法,就是你去招一大批空管员,然后每人盯一架飞机, 从进港,接客,排位,出港,航线监控,直至交接给下一个空港,全程监控。那么问题就来了:· 很快你就发现空管...

2018-05-12 00:31:27 8539 2

原创 Linux高性能服务编程(I/O复用)

I/O复用(本身是阻塞的)网络程序需要使用I/O复用技术的情况:1.客户端程序需要同时处理多个socket。2.客户端需要同时处理用户输入和网络连接3.TCP服务器要同时处理监听socket和连接socket4.服务器要同时处理TCP请求和UDP请求5.服务器要同时监听多个端口,或者处理多种服务。linux下实现I/O复用的系统调用主要有select,poll和epollselect系统调用的用途...

2018-05-09 22:43:20 766

原创 身份证检测系统(小程序)

ID:#ifndef _ID_H_#define _ID_H_#include<stdio.h>#include<windows.h>#include<iostream>using namespace std;void SetCurPos(int x, int y);void HideCursor();void DrawCol(int x, int y, int...

2018-05-06 21:41:19 5783

原创 Python学习笔记(3)

重要的数据类型Dict和Setdict通过key 查找value(key和value关联)花括号{ }表示这是一个dict,然后按照key:value,写出来即可。最后一个key:value的都好可以省略 注意: 单元素的tuple必须在后面多家加一个逗号      dict最后的逗号可以省略由于dict也是集合,len()函数可以计算任意集合的大小>>>len(d)3     ...

2018-05-06 11:24:23 189

原创 Python学习笔记(2)

Unicode字符串:      GB2312编码为表示中文产生   python内部编码是unicode编码Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填0 就可以以Unicode表示的字符串用u’….’表示如:print  u’中文’     (不加u中文就不能显示)字符串在python内部的表示是unicode编码,因此在做编码转化时,通常需...

2018-05-03 23:26:52 205

原创 TCP阻塞模型下服务器和客户端的建立步骤

TCP阻塞模型下服务器和客户端的建立步骤:服务器的建立步骤:1.调用socket建立TCP套接字2.调用bind将套接字跟本地地址绑定3.调用listen建立监听4.建立accept接受来自客户端的连接,返回新的连接套接字5.在新的套接字上面,调用send/recv实现跟客户端的通信客户端的建立步骤:1.调用socket建立TCP套接字2.调用connect实现跟服务器的连接3.调用send/re...

2018-05-03 22:57:49 298

原创 linux下的压缩与解压缩

一、zip格式zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。我们可以使用下列的命令压缩一个目录:# zip -r archive_name.zip directory_to_compress下面是如果解压一个zip文档:# ...

2018-05-02 22:42:43 430

原创 linux高性能编程学习笔记(1)

TCP/TP协议族:分层、多协议的通信体系,四层协议系统,自底向上:数据链路层、网络层、传输层、应用层数据链路层:实现网卡接口的网络驱动程序,以处理数据在物理媒介上得到传输数据链路层两个常用的协议:ARP协议(地址解析协议)、RARP协议(逆地址解析协议)网络层:实现数据包的选路和转发网络层最核心的协议是IP协议(因特网协议),另一个重要协议是ICMP协议(因特网控制报文协议)传输层:为两台主机上...

2018-04-27 23:21:12 174

原创 python学习笔记(1)

Python:荷兰人龟叔于1989奶奶圣诞节创立(胶水语言)特点:优雅,明确,简单语言之间的对比:             类型                    运行速度          代码量C              编译为机器码      非常快        非常多JAVA       编译为字节码        快            多Python     解释执行 ...

2018-04-24 21:07:02 173

原创 面向对象的三个基本特征

1. 封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected,public)2. 继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能...

2018-04-23 22:46:04 130

原创 个人银行账户小程序

#if 0   //1#ifndef _ACCOUNT_H_#define _ACCOUNT_H_class SavingsAccount      //储蓄账户{public: SavingsAccount(int date,int id,double rate); int getid()const {return id;} double getbalance()const {return ba...

2018-04-23 22:30:40 708

原创 linux基本命令

cd(change direction):改变目录{cd / :进入根目录cd 目录名 :进入该目录cd .. :进入上一层目录cd . :进入当前目录cd ~ :进入当前用户(普通用户或超级用户(su root))的宿主(家)目录(cd ~目录名:回到该目录名的宿主目录)cd - :到达上一次的目录}chmod 修改权限 755(3个数字必须同时给出)(0-7八种状态)(二进制111 101 1...

2018-04-20 15:58:54 299

原创 sizeof和strlen的区别

(1)sizeof<1> sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。<2> 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。<3> 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分...

2018-04-17 20:21:25 152

原创 引用&,引用的使用,常引用,引用与多态,引用与指针的区别

1. 什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此...

2018-04-16 22:45:24 1268

原创 堆和栈的主要区别由以下几点:

1、管理方式不同;2、空间大小不同;3、能否产生碎片不同;4、生长方向不同;5、分配方式不同;6、分配效率不同;管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak(内存泄漏)。空间大小:一般来讲在32位系统下,堆内存可以达到4G的空间,从这个角度来看堆内存几乎是没有什么限制的。但是对于栈来讲,一般都是有一定的空间大小的,例如...

2018-04-16 22:37:08 178

原创 strcpy,strlen函数和string原型

编写strcpy函数:已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。(1)不调用C++/C的字符串库函数,请编写函数 strcpy(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?答:为了 实现链式表达式。编写str...

2018-04-13 22:44:35 1223 1

转载 InstallShield 脚本语言学习笔记

InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加。     一.基本语法规则      1.变量      BOOL 布尔型 值为TRUE(1)或FALSE(0)      CHAR 字符型 一字节长的(8bit)的字符      HWND 窗口句柄 用来存放窗口句柄      INT ...

2018-04-12 00:11:26 232

原创 类成员函数的重载、覆盖和隐藏区别

1.重载是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。实现原理上:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编...

2018-04-07 21:49:42 418

原创 Linux 多线程同步机制:互斥量、信号量、条件变量

互斥量:互斥量提供对共享资源的保护访问,它的两种状态:lock和unlock,用来保证某段时间内只有一个线程使用共享资源,互斥量的数据类型是pthread_mutex_t主要涉及函数:pthread_mutex_lock()  pthread_mutex_trylock()   pthread_mutex_unlock()             Pthreaf_mutex_init()  pth...

2018-04-07 18:55:25 439 1

原创 进程间的通讯 systemV posix

在同一台计算机中的进程相互通信的方式主要有:管道(pipe)、信号(Signal)、信号量(Semaphore)、消息队列(Message)、共享内存(shared memory),其中信号量、消息队列、共享内存被称为IPC机制。报文队列(消息队列):消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消...

2018-04-03 22:36:01 270 1

原创 区分零值指针,NULL指针,野指针

零值指针:是值是0的指针,没有存储任何内存地址的指针,可以是任何一种指针类型,可以是通用变体类型void也可以是char,int*等等。空指针:NULL 是一个标准规定的宏定义,用来表示空指针常量,其实空指针只是一种编程概念,就如一个容器可能有空和非空两种基本状态,而在非空时可能里面存储了一个数值是0,因此空指针是人为认为的指针不提供任何地址讯息。在C++里面我们认为0指针就是空指针野指针:指向垃...

2018-03-31 11:48:52 640

原创 linux下软链接与硬链接的区别

linux系统中链接文件分为硬链接和软链接(软链接也叫符号链接)。1.硬链接是创建一个指向block的inode,有防止误删除的功能。因为删除一个文件,实际上是删除inode信息,切断了inode与block之间的联系。当给一个文件做了硬链接之后,删除文件时,只会减少文件的链接数,当链接数为0时,才会彻底删除该文件。软链接类似Windows系统的快捷方式,是一个完整的文件,有自己的inode和bl...

2018-03-30 17:13:21 1385

空空如也

空空如也

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

TA关注的人

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