自己实现一个 atoi 函数

atoi(ASCII to integer),把字符串转换成整型数。 情况一:输入的字符包含不是数字字符的字符? 例如:“123adc4”. 针对这种情况,我们只要加上判断就行了,只要遇到不是数字字符的直接返回。 情况二:如果在数字字符前面有正负号又该怎么办??? 例如:”-123”...

2018-09-03 15:43:12

阅读数 726

评论数 0

在浏览器中输入url回车之后会发生什么

当输入一个网址,例如www.baidu.com之后会发生以下事件: 域名解析 –> 发起TCP的3次握手 –> 建立TCP连接后发起http请求 –> 服务器响应http请求,浏览器得到html代码 –&...

2018-08-30 17:08:10

阅读数 53

评论数 0

sizeof()求类的大小

空类、带构造函数、带虚函数 #include<iostream> using namespace std; class A { }; class B { public: B() {} ~B() {} }; class C { pub...

2018-08-28 19:36:01

阅读数 306

评论数 0

C++---智能指针(auto_ptr、unique_ptr、shared_ptr)

智能指针 void fun(string str) { string ps = new string(str); str = ps; return; } 当函数调用时,都会分配堆中的内存,但没有回收,会导致内存泄漏。这种情况在 return 之前加上 free 就可...

2018-08-26 23:56:28

阅读数 236

评论数 0

Linux---死锁及避免死锁的方法

死锁 什么是死锁 互斥锁是保护临界资源被线程间(或进程间)互斥的访问临界资源,当一个线程得到锁不释放时另一个线程申请时必须等待。当多个线程因为竞争资源而造成的一种僵局(互相等待),如果不施以援手,这些进程将永远等待。 死锁产生的原因 ① 系统资源不足:系统中所拥有的资源其数量不足以满足...

2018-08-20 12:35:06

阅读数 716

评论数 0

MySQL---数据库索引

提高数据库的性能,索引是物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行正确 的‘create index’,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高是以插 入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以他的价值,在于...

2018-08-18 14:00:54

阅读数 190

评论数 0

网络知识总结---(五)高级I/O函数

与网络编程相关的I/O函数大概可以分三类: 用于创建文件描述符的函数:包括 pipe、dup/dup2 用于读写数据的函数:包括 readv/writev、sendfile、mmap/munmap、splice 和 tee 用于控制I/O行为和属性的函数:包括 fcntl 函数 pip...

2018-08-12 16:45:36

阅读数 99

评论数 0

网络知识总结---(四)Linux网络编程基础API

socket地址API 主机字节序与网络字节序 主机字节序:PC机多采用小端字节序,因此小端字节序又被称为主机字节序。 网络字节序:大端字节序。 Linux下完成主机字节序和网络字节序的转换: #include<netinet/in.h> ...

2018-08-12 12:48:22

阅读数 184

评论数 0

网络知识总结----(三)TCP协议详解

TCP服务 TCP:可靠、有链接、面向字节流。 使用TCP协议通信的双方必须先建立连接,然后才能开始数据读写。TCP连接是全双工的。 有链接:TCP协议的这种连接是一对一的,所以基于广播和多播的应用程序不能使用TCP服务,应使用无连接的UDP协议。 字节流与数据报 字节流:发送端执...

2018-08-11 23:57:14

阅读数 110

评论数 0

网络知识总结----(二)IP协议详解

IP服务 IP协议:是TCP/IP协议族的动力,它为上层提供无状态、无连接、不可靠的服务。 无状态:IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输、接收都是相互独立、没有上下文关系的。 优点:简单高效,无需为状态分配资源信息,也不需要传递状态信息。(UDP、HTTP也...

2018-08-11 14:11:21

阅读数 102

评论数 0

网络知识总结----(一)TCP/IP协议族

TCP/IP协议族 TCP/IP协议族:一个四层的协议系统,自底向上包括数据链路层、网络层、传输层和应用层。每一层完成不同的功能,且通过若干协议实现。上层协议使用下层协议提供的服务。 数据链路层 数据链路层:实现了网卡接口的网络驱动程序,以处理数据在物理介质(以太网、令牌环)上的传输...

2018-08-10 15:11:33

阅读数 131

评论数 0

剑指offer--机器人的运动范围

机器人的运动范围 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38...

2018-08-09 22:34:54

阅读数 87

评论数 0

100w个数中找出最大的前K个数

找出最大的前K个数,这很容易让我们联想到优先级队列,而对是优先级队列中堆又是效率最高的,所以选择使用堆来解决这个问题。 创建小堆小堆堆顶元素为最小的,只要小于最小的就进入队列 创建大小为K的堆遍历数组,大于最小的就进行替换,通过堆的特性,堆重在进行比较,堆顶依旧最小。 #include...

2018-08-09 17:15:51

阅读数 185

评论数 0

实现一个memcpy函数和strcpy函数

memcpy函数 c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。 函数原型:void* Memcpy(void* dest, const void* src, const rsize_t n) ...

2018-08-09 15:52:26

阅读数 148

评论数 0

哈希表(散列表)捋一捋

散列表(Hash table)通过将关键码映射到表中的某个位置来存储元素,然后根据关键码用同样的方式进行直接访问 散列表 理想的搜索方法是可以不经过任何比较,一次直接从表中得到要搜索的元素。如果构造一种存储结构,使元素的存储位置与它的关键码之间建立一个确定的对应函数关系Hash(),那...

2018-08-08 23:47:41

阅读数 220

评论数 0

C++---写时拷贝解决深浅拷贝问题

对于普通的类型来说,拷贝没什么大不了的。 int a = 0; int b = a; 不会出现任何问题。 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。 浅拷贝 首先来说说我们常遇到的浅拷贝的情况。 #include <stdi...

2018-08-03 15:45:53

阅读数 142

评论数 0

大小端判断和网络字节序

大小端由来 在计算机内存中,通常是以字节(Byte),也就是 8 个位(Bit)为基本存储单元(也有以 16 位为基本存储单元的)。 对于像C++中的char这样的数据类型,占用一个字节的大小,不会产生什么问题。 但是当数据类型为int,在32bit的系统中,它需要占用4个字节(32bi...

2018-08-03 13:56:22

阅读数 199

评论数 0

C++---静态多态与动态多态

多态 多态按字面的意思就是多种形态,相同的方法调用,但是有不同的实现方式。多态性可以简单地概括为“一个接口,多种方法”。 C++有两种多态形式: 静态多态 动态多态 静态多态 静态多态:也称为编译期间的多态,编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换...

2018-08-02 18:32:37

阅读数 947

评论数 0

C++---继承(单继承、多继承、菱形继承和虚拟继承)

为什么继承 面向对象编程的主要目的之一是提供可重用的代码。传统的C函数库通过预定义、预编译函数实现。C++通过类继承实现,累继承的大致功能: 可以在已有的类的基础上添加功能 可以添加数据 修改类方法的行为 基类&派生类 从一个类派生出另一个类时,原始...

2018-07-31 17:18:13

阅读数 94

评论数 0

C++---六个默认成员函数

类 类是一种将抽象转化为用户定义类型的C++工具,它将数据表示和操纵数据的方法组成一个简洁的包。 类的大小 实现来看一下什么都么有的类–空类 空类的大小为 1 ,这是为什么呢? 当创建一个空类时就要创建一个地址,来标识空类的地址,编译器往往会给一个空类隐含的加一个字节,这样空类在...

2018-07-29 21:40:08

阅读数 164

评论数 0

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