自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LinEvan

竹杖芒鞋轻胜马 一蓑烟雨任平生

  • 博客(42)
  • 资源 (3)
  • 收藏
  • 关注

原创 2014腾讯后台开发面试经历

拿了腾讯后台开发OFFER,百度研发OFFER

2014-09-28 21:49:43 2882

原创 2014百度研发电面经验

百度,第一个offer。

2014-09-07 14:50:51 1760

转载 TCP缓冲区大小及限制

这个问题在前面有的部分已经涉及,这里在重新总结下。主要参考UNIX网络编程。(1)数据报大小IPv4的数据报最大大小是65535字节,包括IPv4首部。因为首部中说明大小的字段为16位。IPv6的数据报最大大小是65575字节,包括40字节的IPv6首部。同样是展16位,但是IPv6首部大小不算在里面,所以总大小比IPv4大一个首部(40字节)。(2)MTU许多网络有一

2014-09-05 14:52:41 4970 1

原创 TCP/IP常见协议及实现

4、ARP的中文意思是(地址解析协议),请用简单语言说明其的工作原理。  1. 首先,每台主机都会在自己的ARP缓冲区 (ARP Cache)中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。  2. 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,       如果有﹐就直接将数据包发送到这个MAC地址

2014-09-05 11:01:26 1331

原创 C++冲刺(七)C++多态实现机制

编译系统为每个包含虚函数的类包括它的子类都创建一个虚函数表,称为vftable,这是一个指针数组,存放每个虚函数的入口地址,供该类的所有对象共享。在每个类对象中放置称为vfptr的虚表指针,指向所属类的虚函数表。当通过指针调用虚函数时,编译器通过vfptr,在其所指的虚函数表中查找函数入口地址,从而实现动态多态性.在多重继承下,如果派生类的多个基类含有虚函数,编译系统会为它创建多个虚函数表。

2014-09-05 10:42:22 1862

转载 C++冲刺(六)C++类对应的内存结构

转自:http://blog.csdn.net/guogangj/article/details/2036785

2014-08-27 16:20:53 729

原创 C++冲刺(五)C/C++内存机制

(一)C内存机制1. 栈(Stack):        位于函数内的局部变量(包括函数实参),由编译器负责分配释放,函数结束,栈变量失效。2. 堆(Heap) :        由程序员用malloc()/calloc()/realloc()分配空间,free()释放所申请的空间。如果程序员忘记free(),则会造成内存泄漏,程序结束时可能会由操作系统回收,也许就一直占用着直至

2014-08-15 10:09:46 797

转载 c++冲刺(四)字节对齐问题详解(转载)

一、什么是字节对齐,为什么要对齐?    现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。    对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数

2014-08-15 10:03:41 820

原创 C++冲刺(三)运算符优先级

优先级最高的是数组下标、函数调用、操作符各结构成员操作符。(如()[] -> .)单目运算符的优先级仅次于前述运算符。类型转换也是单目运算(如!~ ++ -- - (type) *  & sizeof)。单目运算符是自右至左,如*p++解释为*(p++)     双目运算符中算术运算符的优先级最高,移位运算符次之,关系运算符再次之,接着是逻辑运算符、条件运算符,最后是赋值运算符。   

2014-08-15 09:49:33 907

原创 C++冲刺(二)内置类型转换

C++定义了一组内置类型对象之间的标准转换,在必要时它们被编译器隐式地应用到对象上。隐式类型转换发生在以下几种情况:1.在混合类型的算术表达式中。在这种情况下最宽的数据类型成为目标转换类型,这也被称为算术转换。2.用一种类型的表达式赋值给另一种类型的对象3.把一个表达式传递给一个函数,调用表达式的类型与形式参数的类型不相同4.从一个函数返回一个表达式的类型与返回类型不相同算术转

2014-08-15 09:35:56 947

原创 C++冲刺(一)内置数据类型大小

整型从最小到最大依次是:bool, char, signed char, unsigned char, short, unsigned short, int, unsigned int, long ,unsigned long。浮点型

2014-08-15 09:23:09 690

原创 Linux基础及常用命令(笔试面试必备)

一. 基本命令X window与文本模式的切换。通常我们也称文本模式为终端机接口, terminal 或 console喔!Linux默认的情况下会提供六个Terminal来让使用者登陆,切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]的组合按钮。系统会将[F1] ~ [F6]命名为tty1 ~ tty6的操作接口环境。按下[Ctrl] + [Alt] +

2014-07-30 20:33:39 34055 1

原创 数据结构(七)之树

二叉查找树查找插入和删除的时间复杂度都为O(log N)。但它有个弊端。如果输入的数据是排序数据,那么代价巨大,因为树将只由那么没有左(或右)儿子的节点组成。一种解决方法是找平衡条件:任何节点的深度不能过深。最老的一种平衡查找树,即AVL树。另外,较新的方法是放弃平衡条件,允许树有任何的深度,但是在每次操作之后要使用一个调整规则进行调整,使得后面的操作效率更高,这是自调整类结构,例如伸展树。

2014-07-30 16:46:17 1275

原创 Effective C++(八)定制new和delete

8 定制new和deleteSTL容器所使用的heap内存是由容器所拥有的分配器对象(allocator ojects)管理,不是被new和delete直接管理。条款49:了解new-handler的行为请记住:set_new_handler允许客户指定一个函数,在内存分配无法获得满足时被调用Nothrow new是一个颇为局限的工具,因为它只适用于内存分配;后继的

2014-07-29 20:49:11 758

原创 Effective C++(七)模板和泛型编程

条款41:了解隐式接口和编译器多态请记住:classes和Templates都支持隐式接口(interfaces)和多态(polymorphism)对classes而言接口是显式的,以函数签名为中心。多态则是通过virtual函数发生于运行期对templates参数而言,接口是隐式地,奠基于有效表达式。多态则是通过template具现化和函数重载解析发生于编译期。条

2014-07-29 20:46:07 723

原创 Effective C++(六)继承与面向对象设计

vitual函数意味“接口必须被继承”,non-virtual函数意味“接口和实现都必须被继承”条款32:确定你的public继承塑模出is-a关系请记住:“public继承”意味is-a。适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derived class对象也都是一个base classes对象is-a并非是

2014-07-29 20:44:48 696

原创 Effective C++(五)接口实现

异常安全保证、inline函数等等

2014-07-29 20:44:03 652

原创 Effective C++(四)接口设计与声明

条款18:让接口容易被正确使用,不易被误用请记住:好的接口很容易被正确使用,不容易被误用。“促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容“阻止误用”的办法包括建立新类型、限制类型上的操作,束缚对象值,以及消除客户的资源管理责任tr1::shared_ptr支持定制型删除器。这可防范DLL问题,可被用来自动解除互斥锁等等。许多客户端错误可以因为导入新类型而获得预

2014-07-29 20:43:10 782

原创 Effective C++(三)内存与资源管理

内存是必须管理的众多资源之一,其他常见的资源还包括文件描述起、互斥锁、图形界面中的字型和笔刷、数据库连接、以及网络sockets。

2014-07-29 20:42:28 645

原创 Effective C++(二)构造/析构/赋值运算

条款05:了解C++默默编写并调用哪些函数请记住:编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符,以及析构函数。所有这些函数都是public且inline。唯有当这些函数被需要(被调用),它们才会被编译器创建出来。default构造函数和析构函数主要是给编译器一个地方用来放置“藏身幕后”的代码,像是调用base classes和

2014-07-29 20:41:52 881

原创 Effective C++(一)让自己习惯C++

条款01:视C++为一个语言联邦C++是个多重范式编程语言(multiparadigm programming language),一个同时支持过程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional)、泛型形式(generic)、元编程形式(metaprogramming)的语言。理解C++的几个次语言:C。高效编程守则照出

2014-07-29 20:40:26 662

原创 鸟哥的Linux私房菜05_Linux磁盘与文件系统管理

硬盘组成与分割的复习整颗磁盘的组成主要有:圆形的磁盘盘(主要记录数据的部分);机械手臂,与在机械手臂上的磁盘读取头(可擦写磁盘盘上的数据);主轴马达,可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读写数据。磁盘盘上的物理组成扇区(Sector)为最小的物理储存单位,每个扇区为 512 bytes;将扇区组成一个圆,那就是磁柱(Cylinder),磁柱是分割槽(partit

2014-07-29 20:34:31 1167

原创 鸟哥的Linux私房菜03_Linux的文件权限与目录配置

Linux 用户身份与群组记录的文件。在我们Linux系统当中,默认的情况下,所有的系统上的账号与一般身份使用者,还有那个root的相关信息, 都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。 此外,Linux所有的组名都纪录在/etc/group内!Linux文件属性第一栏代表这个文件的类型与权限(permission)

2014-07-29 20:31:12 854

原创 鸟哥的Linux私房菜04_Linux文件与目录管理

目录的相关操作在所有目录底下都会存在的两个目录,分别是『.』与『..』cd (变换目录)pwd (显示目前所在的目录)pwd是Print Working Directory的缩写,也就是显示目前所在目录的命令mkdir (创建新目录)rmdir (删除『空』的目录)被删除的目录里面必定不能存在其他的目录或文件!那如果要将所有目录下的东西都杀掉呢?! 这个时候

2014-07-29 20:30:15 911

原创 鸟哥的Linux私房菜02_Linux使用和man page

重新启动X Windows快速按钮。1)直接注销,然后再重新登陆即可;2)在X的画面中直接按下[Alt] + [Ctrl] + [Backspace]X window与文本模式的切换。通常我们也称文本模式为终端机接口, terminal 或 console喔!Linux默认的情况下会提供六个Terminal来让使用者登陆,切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]的组合

2014-07-29 20:26:28 869

原创 鸟哥的Linux私房菜01_主机规划与磁盘分区

在Linux系统中,每个装置都被当成一个文件来对待。在Linux这个系统当中,几乎所有的硬件装置文件都在/dev这个目录内。举例来说,IDE介面的硬盘的文件名称即为/dev/hd[a-d]。IDE硬盘机:/dev/hd[a-d]SCSI/SATA/U盘硬盘机 /dev/sd[a-p]当前CDROM/DVDROM /dev/cdrom当前的鼠标 /dev/mouse磁碟的组成复习。磁碟盘

2014-07-29 16:29:00 1174

原创 C++联合容器set和map

1. 联合容器联合容器将值与关键字关联在一起,使用关键字来查找值。联合容器的长处在于,它提供了对元素的快速访问。与序列相似,联合容器也允许插入新元素,不过不能指定元素的插入位置。原来是联合容器通常包含用于确定数据放置位置的算法,以便能够很快检索信息。STL提供4种容器:set,multiset,map,multimap。一般地当我们只想知道一个值是否存在时,set 最有用处;希望存储也可能

2014-07-29 15:43:17 829

原创 TCP握手协议和状态变迁

1. TCP状态变迁图2. TCP三次握手和四次握手3. 2MSL等待状态

2014-07-29 10:37:50 1298

原创 快速理解Linux的压缩命令

0. 前言在Linux的环境中,压缩文件的扩展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.bz2』,相对应的命令有tar、gz、bz2。命令比较多,而且每条命令的参数也很多,每次碰到都不得不google百度之。此文帮你快速的理清这些命令的简单用法,至于更复杂的用法可自行man page。1. gzip,zcat首先介绍一下gzip命令。

2014-07-08 21:36:04 1260

原创 通过GitHub和Hexo搭建个人博客

LinEvan个人博客终于有自己的个人博客,逼格一下子提高说不少。网上一搜教程一大堆,很多已经写得很好了,我就不凑这个热闹了。推荐一篇博文:如何搭建一个独立博客——简明Github Pages与Hexo教程,讲得相当详细,博主也是根据这篇博文搭建的,一天轻松搞定个人博客。本文就谈谈我在搭建博客遇到的一些问题,如果你没遇到最好,遇到了希望对你有帮助。问题1 godaddy问题

2014-06-17 22:32:19 1826

原创 数据结构(六)之各种排序算法总结(附源代码)

对于本文介绍的排序算法,我们假设整个排序工作能够在主存中完成,因此,元素的个数相对来说比较小(小于10的6次方)。当然,不能在主存中完成而必须在磁盘或磁带上的排序叫做外部排序,将在其它博文介绍。一. 插入排序====1. 基本思想:对于N个元素,插入排序由N-1趟排序组成。对于P=1趟到P=N-1趟,插入排序保证从位置0到位置P上的元素为已排序状态。插入排序利用了这样的事实

2014-05-13 00:43:36 1207 1

原创 Leetcode | Insertion Sort List | 初出茅庐

Insertion Sort List Total Accepted: 11143 Total Submissions: 45047Sort a linked list using insertion sort.

2014-05-12 20:52:13 894 1

原创 数据结构(五)之二叉查找树

二叉查找树。假设所有的关键字是互异的。对于树的每个节点X,它的左子数中所有关键字值小于X的关键字值,而它的右子树中所有关键字值大于X的关键字值。二叉查找树的平均深度是O(log N)。

2014-05-08 14:45:20 970 1

原创 数据结构(四)之优先队列(堆)

#include #include #define MinData -1 //标识,比任何数据都小,假设所有的数据都大于0typedef int ElementType;typedef struct HeapStruct *PriorityQueue;PriorityQueue Initialize(int MaxElements);void Destroy(Priori

2014-05-07 11:29:50 1077 1

原创 Leetcode | Reverse Words in a String | 抛砖引玉

Reverse Words in a String Total Accepted: 10990 Total Submissions: 79751Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue

2014-05-03 16:54:50 775 1

原创 数据结构(三)之队列ADT

队列也是表。通过数组和链表都可以实现。

2014-05-02 16:10:56 1252 1

原创 数据结构(二)之栈ADT

栈是只能在一个地方进行插入和删除元素的表,这个地方称为zhn

2014-05-02 15:48:32 980 1

原创 数据结构(一)之链表

链表定义比较简单,在此就不介绍了。就简单地

2014-05-02 15:21:29 991 1

转载 学长们的求职血泪史(C/C++/JAVA)

(一) C语言篇C语言求职血泪史华为(实习):机试、一面、性格测试被鄙视、优招被鄙视、普招被鄙视 锐捷:笔试、面试莫名其妙被鄙视创新工场:笔试、一面、二面、offer阿里巴巴:笔试被鄙视cvte:网测、面试没去大众点评:网测悲剧IGT:笔试、一面、二面、offer烽火众智:霸笔、等两个小时面五分钟、offer直接拒酷派:笔

2014-04-22 12:05:32 2264 1

原创 关于C++继承类和对象

公有、私有和保护继承都可以直接访问基类的公有数据和接口以及保护数据和接口。在继承类方法直接调用或者通过“基类名+::”调用公有继承的对象可以访问基类的公有数据和接口,私有继承和保护继承不能公有继承通过类或者对象都可以访问基类的公有静态成员和函数,通过“类+::”调用或者“对象+.”调用未完待续...

2014-04-22 11:53:08 1474 4

《数据结构与算法分析-C语言描述》习题答案

涵盖了书中大部分练习题,还包括课后题的源代码。

2014-04-29

数据结构与算法分析(C语言描述第二版)源代码

基本涵盖了书中全部数据结构的源代码,还配套了测试代码,可编译可运行。

2014-04-29

C++ GUI QT4编程源代码

书籍源代码都在此,还有代码解析,再也不用自己敲代码了!

2014-02-24

空空如也

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

TA关注的人

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