自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

life_binary的博客

技术积累

  • 博客(22)
  • 收藏
  • 关注

原创 C++中 const 和 static 的总结

一、C++中的const是为了干什么 const 的特点和应用场景: c++中的const 可以定义常量,修饰常变量、类的成员方法、类的成员变量 (1)const用来定义常量,那么这个常量就不能作为左值被修改,而且必须初使化。 const修饰的常量如果是一个明确的值,那么常量在编译期间会被常量的初始值替换 (2)const可以修饰常变量,常变量不能作为左值被修改,其它性质和普...

2018-08-09 11:29:31 302

原创 C编程:输入一个字符串,输出其中所有的单词,要求输出单词不能重复,大小不区分(Hello 和 hello是同一个单词)

首先: 拿到这道编程题 思路: 1、拿出单词 2、单词如果重复,只输出一个 3、不区分大小写 再接下来:拿出单词,可以用C语言的库函数strtok()切割字符串 也可以自己写代码判断是否是单词。 要解决不重复问题,可以考虑用一个没有重复元素的容器,那么 set就很合适嘛 可以用库函数,或者自己写转换大小写的函数(无非就是加减32嘛),根据个人喜好。 接下来,上代码:#incl...

2018-08-07 21:22:47 3877

原创 TCP ------ 滑动窗口协议

在TCP的滑动窗协议中,我们可以把字节流看做四部分: 已经发送并确认的、已经发送未确认的、能够发送的、不能发送的,这四部分。 整体的窗口大小(即就是滑动窗口的大小)是按照通告方的窗口大小决定的,窗口里面分为两部分,一部分是等待确认的数据,一部分是可以发送的数据,首先,确认的话,是等待TCP回复一个确认报文段,确认已经收到了对端的数据,并且经过头部的16位校验和的数据校验之后,发现数据是正确...

2018-08-07 09:06:13 767

原创 TCP/IP 协议族

恩,说一下计算机四层协议模型: 各个协议的功能的话: IP:因特网协议,处理实际上传输数据 TCP:传输控制协议,面向连接的协议给用户进程提供可靠的全双工的字节流。关心确 认、超时重传、等具体细节 UDP:用户数据报协议,无连接协议,UDP不能保证每一UDP数据报可以到达目的地, ICMP:网际控制协议,主要用于检测网络连接,ICMP处理路由器和主机间的错误和控制消息。ping ...

2018-08-06 21:12:04 1141 1

原创 socket 套接字 ---- 基础

socke相当于插座,也就是接口一、基本概念 socket使用之前,首先要申请一个socket对象。同时要知道对方的socket,然后请求连接,双方建立连接,然后就可以进行收发数据。socket利用网络间通信设施进行进程通信,对通信的细节不用关心。 【socket五元组:协议、本地地址、本地端口、远程地址、远程端口】socket面向客户-服务器模型而设计,针对用户和服务器程序提供不...

2018-08-04 17:11:34 480

原创 TCP和UDP的区别

TCP和UDP都是传输层的协议 TCP 面向连接的、可靠地、数据流服务 UDP 无连接的、不可靠的、数据报服务 那么为什么 TCP可靠,为什么UDP不可靠呢?也就是是什么保证了TCP是可靠的呢? 共有四点原因: 1、TCP保证数据都能到达对端。是通过 应答确认机制 和 超时重传机制 来保证的。 2、TCP保证数据有序。TCP的每一个报文段都有序号 3、TCP保证数据不失真。TCP报头...

2018-08-04 11:02:28 2921

原创 OSI七层模型 和 TCP/IP 四层模型

首先,看图说话,OSI七层模型 和TCP/IP 四层模型 如下: TCP/IP 协议族 又称 网际协议族 原始套接口可以绕过传输层直接使用IPV4 或者IPV6由图可以看到,OSI七层模型的上三层(应用层、表示层、会话层),对应TCP/IP的 应用层,数据链路层和物理层 对应 设备驱动程序和硬件(数据链路层) TCP/IP四层模型功能:应用层:负责向用户提供常用的应用服务 。主要...

2018-08-03 22:20:08 536

原创 自己用 C语言实现 atoi()函数

atoi() 函数:atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进)等,可以通过isspace( )函数来检测),直到遇上数字或正负符号才开始做转换,而在遇到非数字或字符串结束符(‘\0’)才结束转换,并将结果返回。如果 nptr不能...

2018-08-02 20:51:07 3208

原创 判断IPV4地址是否合法(C语言实现)

输入一个字符串,判断是否是合法的IPV4地址 首先,IPV4 地址 (1),三个点 “ . ” (2),四部分整数,0~255 之间 (3),前导数不能是0,例如 012.1.1.1 非法#include<iostream>#include<stdlib.h>#include<string.h>using namespace std;/...

2018-08-02 19:21:47 15760 1

原创 总结:进程和线程的区别

首先呢,进程是系统进行资源分配和调度的一个独立单位,线程呢就是进程内部的一条执行序列是CPU调度和分派的基本单位,线程的执行呢必须依赖于进程,一个进程内部至少有一条线程,main主函数的执行序列为主线程 ,我们可以通过线程库创建线程。其次呢,进程有四个要素: 其一,必须有一段程序供其执行 其二,有专用的系统堆栈空间 其三,在内核中有一个task_struct结构体,也就是进程控制...

2018-07-28 18:58:18 1668

原创 STL 基本容器 优缺点比较

总结在先:1、如果需要高效的随机存取,不在乎插入和删除的效率,使用vector;2、如果需要大量的插入和删除元素,不关心随机存取的效率,使用list;3、如果需要随机存取,并且关心两端数据的插入和删除效率,使用deque;4、如果打算存储数据字典,并且要求方便地根据key找到value,一对一的情况使用map,一对多的情况使用multimap;5、如果打算查找一个元素是否存...

2018-07-28 18:53:55 1203

原创 设计模式之 -- 工厂模式

总结在先: 1、抽象工厂模式:一个工厂有多条生产线 同一基类中派生出来的所有产品都是由工厂构造的,新加产品之后,如何添加新产品? 直接写的话,会违反 封装原则 2、这个时候简单工厂模式就不适用了,需要用到工厂模式 工厂模式:给每一个产品生成一个工厂 3、多个基类指针指向派生类,派生类必须知道命名 为了提高扩展性和维护性 抽象工厂...

2018-07-28 18:34:57 203

原创 IA-32体系结构 寄存器

IA-32 体系,就是常说的x86,i386体系结构,是英特尔的32位架构。 从80386开始使用IA-32的32位体系,至今仍然在使用。IA-32 架构提供了10个32位和6个16位的寄存器,分为三类: 1、通用寄存器 2、控制寄存器 3、段寄存器通用寄存器分为数据寄存器、指针和索引寄存器。通用寄存器包括:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。 前...

2018-05-16 16:36:19 1841

转载 防止头文件二次编译的两种方法

转自 https://blog.csdn.net/lixingying567/article/details/45745637(1) #ifndef #ifndef是最早期使用的方法,是基于语言的宏定义名字不能冲突的前提下的。 优点:这种方法不仅能保证同一个头文件不会被包含两次,也可以保证内容完全相同的两个文件也只能被包含一次。 缺点:你的#ifndef 后面跟的宏名字和你...

2018-05-15 23:22:26 727

原创 区别 :内联函数和普通函数的区别

内联函数和普通函数的区别: 1、在编译过程中,内联函数在函数的调用点,把函数代码全部展开,所以没有标准函数的栈帧的开辟和回退。 (如果 调用函数的开销 > 函数执行的开销,那么就建议写为内联函数 ) 调用的开销:函数的栈帧的开辟和回退 执行的开销:函数体内代码执行的开销2、内联函数只在本文件可见,编译阶段就进行了替换,所以不产生符号,所以一般在头文件中定义,这样就可以在其它文...

2018-05-15 23:12:40 1868

原创 磁盘的分区

磁盘的组成:磁盘盘片、机械手臂、磁盘读取头、主轴马达。整个磁盘盘片就好比好多同心圆,由圆心以放射状的方式分割出磁盘的最小存储单位,那就是 扇区,每个扇区的大小是512 bytes ,这个值是不会变的,扇区组成的一个圆就成为磁道,如果是在多个盘面的,在所有磁盘盘片上的同一个磁道可以组成一个磁柱,磁柱是我们分割磁盘时的最小单位。 由于分割表只有64 字节的大小,最多只能容纳四笔分割的记录...

2018-04-07 12:10:47 339

原创 智能指针(boost库中的smart_ptr库)

一、基本概念 智能指针解决了资源生存期管理的问题(尤其是动态分配的对象) • 使用shared_ptr进行对象的生存期自动管理,使得分享资源所有权变得有效且安全。 (shared是boost最智能的智能指针,可以支持那些不是使用delete进行析构的资源) • 使用weak_ptr可以安全地观测共享资源,避免了悬挂的指针。• 使用scoped_ptr 和 scoped_array限制资...

2018-03-18 23:42:17 255

原创 数据结构之排序大集合(下)(选择、堆、基数、归并,链表排序)

(1)选择排序 算法思想:每次从待排序序列中选出最小值,和待排序序列第一个值交换。 不稳定(因为有跳跃式的数据交换) 时间复杂度:O(n^2) 性能 优于冒泡排序 空间复杂度:O(1)void SelectSort(int *arr,int len){ int min;//值不好保存,要保存下标 int j; int tmp; for(int i=

2018-01-26 14:24:17 266

原创 数据结构之排序大集合(上)(冒泡、插入、希尔、快排)

一、基本概念: 排序 : 是将n个 记录按关键字有序排列的操作 记录:将数据元素称为记录,输入集合、输出集合也是一个记录集合,可以将排序看成是线性表的一种操作。 稳定性:如果有两个数A、B关键字一样,未排序之前,A在B的前面,排序之后A依然在B的前面,那么这种排序算法就是稳定的,反之,如果B跑到A的前面去了,那么就是说这种方法是不稳定的。(跳跃式交换,都是不稳定的) 内排序:整个

2018-01-25 17:54:47 421

原创 算术类型转换和赋值类型转换

整形数据(int,long,short):以整数的补码形式在计算机中存放。 实型数据(double,float):(浮点型数据)以规范化的二进制指数的形式在计算机中存放。 字符型数据(char):按其对应整数的形式存放。 由此引出的问题:隐式的类型转换,进制转换,以及数据类型的基本知识点,将在下一篇博客中总结。1、混合运算的类型转换规则 当二元运算符两边的操作数类型不同,但类型相容时,系统

2017-11-24 15:46:48 1025

原创 C++ 关键字

数据类型说明符与修饰符:bool (布尔类型)、char(字符类型)、class(类说明符)、const(限定符)、double(双精度浮点数类型)、enum(枚举类型)、float(单精度浮点型)、int(整型)、long(长整型)、short(短整型)、signed(有符号说明符)、struct(结构体类型)、union(联合类型)、unsigned(无符号说明符)、void(空类型)、wchar_t

2017-11-21 11:53:30 320

原创 字符串处理函数

字符串处理 1,求字符串长度 size_t strlen(char const *string); size_t:无符号整数类型char buffer[]="hello world";printf("%d\n",strlen(buffer));2,复制字符串 char * strcpy(char * dst,char const *src); 这个函数把参数src字符串复制到d

2017-08-25 15:14:04 157

空空如也

空空如也

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

TA关注的人

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