自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (3)
  • 收藏
  • 关注

转载 智能指针std::auto_ptr和tr1:shared_ptr用法

下面通过一个工厂函数(createInvestment())返回一个特定的investment对象:Investment* createInvestment(); 见如下函数:void f(){    Investment* pInv = createInvestment();    ....    delete pInv;}

2015-11-13 09:58:58 570

转载 标准C++中的STL容器类简介

http://blog.csdn.net/phunxm/article/details/5081472容器的概念所谓STL容器,即是将最常运用的一些数据结构(data structures)实现出来。容器是指容纳特定类型对象的集合。根据数据在容器中排列的特性,容器可概分为序列式(sequence)和关联式(associative)两种。迭代器是一种检查容器内元素并遍历元

2015-09-02 10:54:45 3104

转载 Linux文件查找命令find详述

Linux文件查找命令find详述  关于find命令由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系

2015-06-08 19:04:15 591

转载 errno 104:connetction reset by peer的错误分析

errno = 104错误表明你在对一个对端socket已经关闭的的连接调用write或send方法,在这种情况下,调用write或send方法后,对端socket便会向本端socket发送一个RESET信号,在此之后如果继续执行write或send操作,就会得到errno为104,错误描述为connection reset by peer。        出现这种问题的很大一部分原因,至

2015-05-13 16:29:06 65770 5

原创 n/2复杂度反转字符串

#include #include /*    s  --> string     n  --> string length*/void shiftstringone(char *s, int n){    assert(s != NULL);    char t = s[0];    for(int i = 1; i     {     

2015-04-21 17:04:39 544

转载 排序算法总结

http://hi.baidu.com/gilbertjuly/blog/item/7c1cc4c7c28b5d129c163d07.html排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将给出详细的说明。对于排序的算法我想先做一点简单的介绍,也是给这篇文章理

2015-03-27 19:47:22 480

转载 read系统调用,mmap系统调用

一般情况下,操作文件既可以使用标准I/O,也可直接使用系统调用。两者有何区别呢?在输入输出中,直接使用底层的系统调用效率是非常低的,为什么?(1)  系统调用会影响系统性能。执行系统调用时,Linux必须从用户态代码     切换到内核态,然后再返回用户代码。(2)  硬件会对底层系统调用一次所能读写的数据块做出一定的限制。 带缓存的文件操作

2015-03-27 19:45:57 637

转载 标准IO缓冲详解全缓冲、行缓冲、不缓冲

标准I/O库提供缓冲的目的是尽可能地减少使用read和write调用的次数。他也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/O库最令人迷惑的也是他的缓冲。标准I/O提供了三种类型的缓冲:1、全缓冲。这种情况下,在填满标准I/O缓冲区后才进行实际I/O操作。对于驻留在磁盘上的文件通常是由标准I/O库实施全缓

2015-03-27 19:43:20 673

转载 Linux进程同步之记录锁(fcntl)

记录锁相当于线程同步中读写锁的一种扩展类型,可以用来对有亲缘或无亲缘关系的进程进行文件读与写的同步,通过fcntl函数来执行上锁操作。尽管读写锁也可以通过在共享内存区来进行进程的同步,但是fcntl记录上锁往往更容易使用,且效率更高。记录锁的功能:当一个进程正在读或修改文件的某个部分是,它可以阻止其他进程修改同一文件区。对于这个功能阐述我认为有三点要解释的:记录锁不仅仅可以用来同步

2015-03-27 19:40:49 672

转载 文件描述符和文件指针的区别

文件描述符就是open文件时产生的一个整数,直到一个索引作用,它用于UNIX系统中,用于标识文件。文件指针是指向一个FILE的结构体,这个结构体里有一个元素就是文件描述符。它用于ANSI C标准的IO库调用中,用于标识文件。 既然FILE中包含文件描述符元素,可以用fopen()直接获取指针fp,然后使用fp获得fp中所包含文件描述符fd的信息。 文件描述符应该是唯一的,但文件

2015-03-27 16:31:31 394

转载 open/read/write和fopen/fread/fwrite的区别

open:系统调用,返回的是文件描述符,即文件句柄,是文件在文件描述副表里的索引。fopen:C语言库函数,返回的是一个指向文件结构的指针。fopen是ANSI C标准中的C语言库函数,在不同的操作系统中应该调用不同的内核API,UNIX环境下,fopen是对open的封装。文件描述符是UNIX/Linux下的一个概念,Linux环境下,一切设备皆是文件,一切设备皆是以文件的形

2015-03-27 16:27:35 497

转载 fork /vfork 的异同

1>fork()用于创建一个新进程。由fork()创建的子进程是父进程的副本。即子进程获取父进程数据空间,堆和   栈的副本。父子进程之间不共享这些存储空间的部分。而vfork()创建的进程并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用 exec(或exit)于是也就不会存放该地址空间。相反,在子进程调用exec或exit之前,它在父进程的空间进行。2>vfork()与fork()

2015-03-26 20:14:02 418

转载 static和const关键字尽可能多的作用

static关键字至少有下列n个作用:(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;(2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;(3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;

2015-03-26 19:47:27 520

转载 编写类String的构造函数、析构函数和赋值函数

编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:class String{       public:        String(const char *str = NULL); // 普通构造函数      String(const String &other); // 拷贝构造函数     ~ String(void);

2015-03-26 19:43:41 427

转载 最长回文子串

最长回文子串是最初我在网易笔试的时候遇见的,当时天真的把原字符串S倒转过来成为S‘,以为这样就将问题转化成为了求S和S’的最长公共子串的问题,而这个问题是典型的DP问题,我也在前面的文章中介绍了3中解决这个问题的方法。但是非常可惜,后来才知道这个算法是不完善的。那么到底为什么呢?听我慢慢道来。S=“c a b a”  那么  S' = “a b a c”, 这样的情况下 S和 S‘的最长公

2015-03-26 15:27:43 405

转载 fork循环

题目:请问下面的程序一共输出多少个“-”?1234567891011121314#include #include #include  intmain(void){   int

2015-03-26 10:26:56 1731

转载 高性能I/O设计模式概述

http://www.yeolar.com/note/2012/12/15/high-performance-io-design-patterns/这篇概述把网上的一些资料汇总到了一起,主要目的是解释清楚I/O模型的概念和Reactor、Proactor模式。目录服务器的几种实现方法一些概念同步和异步阻塞和非阻塞I/O模型Reactor和Proa

2015-03-04 17:31:17 383

转载 两种高性能 I/O 设计模式 Reactor 和 Proactor

http://daoluan.net/blog/two-high-performance-io-design-patterns/#commentsContents1 Reactor2 Proactor3 总结Reactor 和 Proactor 是基于事件驱动,在网络编程中经常用到两种设计模式。曾经在一个项目中用到了网络库 libeven

2015-03-04 17:30:10 405

转载 IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)

http://blog.csdn.net/historyasamirror/article/details/5778378当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说

2015-03-04 17:28:47 376

转载 网络server模型

本章主要列举服务器程序的各种网络模型,示例程序以及性能对比后面再写。一、分类依据。服务器的网络模型分类主要依据以下几点(1)是否阻塞方式处理请求,是否多路复用,使用哪种多路复用函数(2)是否多线程,多线程间如何组织(3)是否多进程,多进程的切入点一般都是accept函数前二、分类。首先根据是否多路复用分为三大类:(1)阻塞式模型(2)多路复用模型(3)实时信号模型

2014-04-18 17:45:36 547

转载 “惊群”,看看nginx是怎么解决它的

http://blog.csdn.net/russell_tao/article/details/7204260

2014-04-18 15:41:48 468

转载 《进军硅谷——程序员面试揭秘》

摘要:硅谷是绝大多数程序员梦想工作的地方,但你是不是真的做好进军硅谷的准备了?硅谷程序员面试有什么要求?本书作者从职位选择、公司选择、人际关系及求职渠道四个角度为广大IT从业人员揭密了硅谷程序员的求职之路。

2014-04-17 11:35:09 4231

转载 千万并发的秘密-内核是问题的根本

http://www.oschina.net/translate/the-secret-to-10-million-concurrent-connections-the-kernel在的系统可以支持千万级的并发连接,只不过所使用的那些激进的技术,并不为人所熟悉。要了解这是如何做到的,我们得求助于Errata Security的CEO Robert

2014-03-19 14:24:43 528

转载 通过 ulimit 改善系统性能

http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/index.html?ca=drs-cn-1126概述系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 lin

2014-03-19 12:30:19 384

转载 我们为什么要关注MapReduce?

http://www.kuqin.com/system-analysis/20080823/14773.html1.什么是MapReduce?       MapReduce 是由Google公司的Jeffrey Dean 和 Sanjay Ghemawat 开发的一个针对大规模群组中的海量数据处理的分布式编程模型。MapReduce实现了两个功能。Map把一个函数应用于集合中

2014-03-19 12:27:38 555

转载 Linux服务器上用netstat查看的11种网络状态及长连接

一、Linux服务器上11种网络连接状态:图:TCP的状态机通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手注:以下说明最好能结合”图:TCP的状态机”来理解。SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。

2014-03-19 12:26:03 10900

转载 如何成为强大的程序员?

http://news.cnblogs.com/n/171287/ Aaron Stannard 是新创公司 MarkedUp 的 CEO,他最近花费大量时间雇佣、评估很多不同的程序员,并和他们一起协作。在这个过程中他发现并总结了十种程序员无法意识到自己潜力的原因,意在让更多程序员发掘出自己的潜力,从而成为强大的程序员。  Aaron 提到,他的公司中所使用的技术非常复杂,

2014-03-19 11:40:01 407

转载 风雨20年:我所积累的20条编程经验

http://www.iteye.com/news/18570编者按:原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳 森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你在本文中看到自己的身影。  

2014-03-18 19:30:46 405

转载 MySQL索引分析和优化

http://www.phpchina.com/1628/viewspace_6028.htmlMySQL索引分析和优化 什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜

2014-03-18 19:27:58 420

转载 HTTP POST GET 本质区别详解

一 原理区别    一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,

2014-03-18 19:20:14 381

转载 C++著名程序库的比较和学习经验

C++著名程序库的比较和学习经验(转自校内,了解一些基础的还是很有必要)1、C++各大有名库的介绍——C++标准库 2、C++各大有名库的介绍——准标准库Boost 3、C++各大有名库的介绍——GUI 4、C++各大有名库的介绍——网络通信 5、C++各大有名库的介绍——XML 6、C++各大有名库的介绍——科学计算 7、C++各大有名库的介绍——游戏开发 8

2014-03-18 19:18:34 512

转载 怎样花两年时间去面试一个人

http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演绎:))。他有两个辛辣但不乏洞察力的断言:真正的牛人也许一辈子就投大概4次简历,这些家伙一毕业就被好公司抢走了,并且他们的雇主会给他们不赖的待遇,所以他们也不想挪窝。(刚

2014-03-18 19:13:51 427

转载 程序员技术练级攻略

前言    你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发)    建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。回顾一下历史,看看历史上时间线上技术的发展,

2014-03-18 19:09:07 445

转载 Best of Vim Tips 中文版

http://blog.chinaunix.net/u/9465/showart_465140.htmlBest of Vim Tips 中文版每个想深入学习 Vim 用户都会认真阅读的文章,官网链接:http://www.rayninfo.co.uk/vimtips.html 这篇文章被很多人翻译过,但那是都很早了,所在原来的一系列翻译的基础上修正原来

2014-03-18 19:03:18 613

转载 做一个懒惰的程序员

本文写给所有可爱的程序员,(我)你们都是一群可爱的,用双手建造世界的思想家。从今天起,我要做一个懒惰的程序员。第一 拒绝鼠标从今天,我将拒绝鼠标。鼠标,是鼠标手的根源,无数的程序员都被鼠标手所困扰,这似乎已经成为了程序人员的专利。我们养成了一个一个的“恶习”,比如,滥用鼠标右键刷新,看文档的时候,喜欢用鼠标来标记正在阅读的段落等等。这些非常规的使用使我们的手得了严重

2014-03-18 18:47:04 438

转载 雪崩处理

常见的过载情况有两种:队列式过载,命令组合式过载。队列式过载:执行流间通过fifo的队列进行通信,比如udp套接字的缓冲区,后端同步地从队列中读出请求并处理,若是缓冲区设置过大,请求量一旦超过后端的能力,整个服务就会全面崩盘。具体缓冲区长度设计:         前端超时假设是T秒,后端能力是P,每个请求的大小是S,那么我们的缓冲区应小于T*P*S,假设前端超时200ms,后端能力

2014-03-18 17:59:57 615

转载 如何向妻子解释OOD

http://www.cnblogs.com/niyw/archive/2011/01/25/1940603.html前言  此文译自CodeProject上How I explained OOD to my wife>一文,该文章在Top Articles上排名第3,读了之后觉得非常好,就翻译出来,供不想读英文的同学参考学习。  作者(Shubho)的妻子(Farhana)打

2014-03-18 17:56:50 458

转载 简明HTTP协议

1 HTTP协议的概念和历史1.1 什么是HTTP协议HTTP协议是超文本传送协议(HyperText Transfer Protocol)的缩写,它是万维网(World Wide Web,www,也简称为Web)的基础。HTTP协议设计之初就是为了实现Web的想法。HTTP协议位于TCP/IP协议栈的应用层。我们在浏览器的地址栏里输入的网站地址叫做URL(UniformResourc

2014-03-18 17:50:55 453

转载 浅析PHP运行机制

对于php来说,了解它的运行机制,有助于我们写出高效健壮的代码,会更清楚程序的代码到底该怎么去写,如果是做php扩展,那了解它的运行机制就更是必须的了。 一、 运行环境:LAMP的A、M、P是如何互通工作的?L:Linux/Windows(OS)A:Apache(server)M:Mysql(DB)P:PHP1. 分别安装Ap

2014-03-18 17:49:23 3800

转载 三大WEB服务器对比分析(apache ,lighttpd,nginx)

http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html一.软件介绍(apache  lighttpd  nginx)1. lighttpdLighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web

2014-03-18 17:46:25 493

c++ essential

essential c++ classic English version pdf format

2010-12-01

算法之外部排序.pdf

算法 之 外部排序(上海交大 课件) 1、外存信息的存取 2、外部排序的方法 3、多路平衡归并的实现 4、置换-选择排序 5、最佳归并树

2010-11-16

MIT-c++-2009.zip

MIT 开放课程 C++ http://ocw.mit.edu/courses/

2010-11-16

空空如也

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

TA关注的人

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