7 鱼思故渊

尚未进行身份认证

暂无相关描述

等级
TA的排名 201

我为什么那么喜欢呆在实验室,因为我知道我错过就再也没有机会

原以为属于自己的求职季会非常残酷、异常辛苦,想一想去年毕业的师兄师姐,为了一个满意的工作整天跑场去笔试面试。原以为在这场没有硝烟的战争中会被虐的很惨,原来都是虚惊一场,之前一切的假想都是存在,简历还没来得及好好准备就那样稀里糊涂的签了。找工作之前,或者说在研究生阶段,每次遇到细致的面经,都忍不住扫上一眼。时至今日,学校的秋季招聘也告一段落,闲来无事,也想和大家分享一下个人找工作的些许经历和准备

2015-11-10 21:28:05

STL源码剖析--vector

vector容器概述     vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,

2015-09-14 09:59:06

二叉树中和为某一值的路径

题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树     10       /\      5 12      /\      4   7则打印出两条路径:10,12和10,5,7。先序遍历树即可得到结果

2015-09-09 17:57:34

求一个数组中的逆序对

数组中的逆序对是指左边元素大于右边元素,这样的一对数就构成了一个逆序对。求一个数组中的逆序对。这里使用分治方法,具体的思路可以参考剑指offer中的一个问题,这里使用了归并的思想,假如我们将一个数组分成两个数组,而且这两个数组是有序的,在从尾部到头部合并的时候,就可以判定有多少对逆序的元素对#include#include#includeusingnamespacestd

2015-09-09 17:30:35

32位系统和64位系统的区别

这里只说在32位系统和64位系统下编译器对内建类型的大小32位系统:char:1个字节char*(也就是指针变量)4个字节(32位的寻址空间是2^32,即32个bit,也就是4个字节。同理64位编译器)shortint:2个字节int:4个字节unsignedint:4个字节float:4个字节double:8个字节longlong:8个字节u

2015-09-09 17:12:19

生产者消费者模型(Linux系统下的两种实现方法)

生产者消费者问题是同步问题中的一种常见情况,借用一下维基百科的话生产者消费者问题(英语:Producer-consumerproblem),也称有限缓冲问题(英语:Bounded-bufferproblem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中

2015-09-07 14:32:19

大端模式和小端模式

在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先从字节序说起。一、什

2015-09-05 10:01:13

浅谈C++多态

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。  多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。  C++多态性是通过虚函数来实现的,虚函数允许子类重新定

2015-09-05 09:44:21

二分查找的实现

在一个有序的数组中,查找一个数,可以使用二分查找,但是这个算法也是有很多地方需要注意的。正确的写法如下所示。//首先要把握下面几个要点:   //high=n-1 => while(lowhigh=middle-1;   //high=n   => while(lowhigh=middle;   //middle的计算不能写在while循环外,否则无法得到更新。i

2015-08-28 15:29:20

typeid详解

在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-TimeTypeIdentification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。   dynam

2015-08-25 15:11:12

使用递归反转一个栈

反转递归栈的内容使用递归,一定要明白递归结束的条件,假如栈中只有一个元素或者没有元素,那么这个栈就不用递归。那么我们将栈顶元素取出来,将余下的元素进行反转,那么将取出的元素放到栈的底部即可。对于将一个元素放到底部,又是一个递归的调用,如果栈为空,那么直接将元素存放到栈的底部即可,如果栈中有元素,那么取出栈内的元素,将原来的元素再次调用函数存放到栈底,然后将取出的元素压入栈即可。感觉这个

2015-08-21 11:26:50

十进制小数和二进制小数之间的转换

一、二进制数转换成十进制数    由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。二、十进制数转换为二进制数    十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。    1.十进制整数转换为二进制整数    十进制整数转换为二进制

2015-08-20 14:50:05

Linux进程的睡眠和唤醒(一个定时信号唤醒睡眠中的进程)

突然想到Nginx中时间更新这块处理,Nginx中为了减少调用系统调用gettimeofday这个函数(因为一旦调用了系统调用,就会使得进程从用户态切换到内核态,就会发生上下文切换,这个代价很大且不值得)而设置了系统时间更新的次数,内部时间更新有两种方式,一种就是在配置文件中设置更新的评论,另一种是没有设置更新频率,在后面这种情况下,可以使用epoll_wait()这个函数的最后一个参数来控制反复

2015-08-20 11:35:56

Linux中fork()函数实例讲解

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。   一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数

2015-08-17 15:56:54

大型分布式网站的技术需求

HBase是ApacheHadoop项目下的一个子项目,它以GoogleBigTabale为原型,设计实现了高可靠性、高可扩展性、实现读写的列存储数据库,他的本质实际上是一张稀疏的大表,用来存储粗粒度的结构化数据,并且能够通过简单地增加节点来实现系统的线性扩展。        HBase运行在分布式文件系统HDFS之上,利用它可以在廉价PCServer上搭建。HBase集群中通常包含两种

2015-08-15 16:26:17

Zookeeper监控的作用

当服务越来越多,规模越来越大时,对应的机器数量也越来越大,单靠人工来管理和维护服务及地址的配置地址信息,已经很困难了,并且,依赖单一的硬件负载均衡设备或者使用LVS.nginx等软件方案进行路由和负载均衡调度,单点故障的问题也开始凸显,一旦服务路由或者负载均衡服务器宕机,依赖他的所有服务均将失效、        此时,需要一个能够动态注册和获取服务信息的地方。来统一管理服务名称和其对应的服务

2015-08-15 15:50:55

二叉树的非递归遍历(前序、中序、后序)

先序遍历voidPreOrder_Nonrecursive1(BiTreeT)//先序遍历的非递归{if(!T)return;stacks;BiTreecurr=T;while(curr!=NULL||!s.empty()){while(

2015-07-17 08:01:17

UDP连接调用connect()函数

UDP是一个无连接的协议,它没有像TCP中EOF之类的东西。8.11UDP的connect函数除非套接字已连接,否则异步错误是不会反悔到UDP套接字的。我们确实可以给UDP套接字调用connect,然而这样做的结果却与TCP连接不同的是没有三路握手过程。内核只是检查是否存在立即可知的错误,记录对端的IP地址和端口号,然后立即返回调用进程。对于已连接UDP套接字,与默认

2015-07-15 10:59:38

从TCP协议的原理来谈谈rst复位攻击

在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP的flag标志位里RST在哪些情况下出现。下面我会画一些尽量简化的图来表达清楚上述几点,之后再了解下RST攻击是怎么回事。1、TCP是什么?TCP是在IP网络层之上的传输层协议,用于提供port到port面向连接的可靠的字节流传输。我来用

2015-07-15 09:01:41

函数模板的特化

函数模板的特化该定义中一个或多个模板形参的实际类型或实际值是指定的。特化形式如下:关键字template后面接一对空的尖括号();再接模板名和一对尖括号,及括号中指定这个特化定义的模板形参;函数形参表函数体templateintcompare(constchar*const&v1,constchar*const&v2){   returns

2015-07-15 08:21:27

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!