自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Hash函数

常用的字符串函数有:ELFHash、HfIp 等hash函数他们都是十分有效的hash函数,其中,ELFHash是源于Unix System V的字符串hash函数,HfIp是处理URL熊爱国很好的hash函数,一直是用于天王搜索引擎中。int ELFHash(char *str){ unsigned long hash = 0; while(*str!='\0')

2012-06-16 17:45:14 1041

转载 C++优秀书籍清单

多读一些优秀的书籍,对于开发者稳固编程基础、提高编程技能有很大帮助。但是,大多时候,初学者不知道应该读什么书入门,有一定基础的开发者不知道如何进阶。 本文总结了一个C++优秀书籍清单,希望能够为你带来一定的帮助。这些书大多数都有中文版,并且可以很容易在网上找到。 阶段 1 《Essential C++》 这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C

2012-06-10 12:25:27 636

原创 简单的数组类 Array

#include#includeusing namespace std;templateclass Array{ public: Array():data(0),sz(0) { } Array(unsigned int size):sz(size),data(new T[size])

2012-06-09 14:39:42 574

转载 深度解析前置++i和后置i++的效率

i++(后置)和++i(前置)。二者的语义是有区别的,前者先将其值返回,然后其值增1;后者则是先将值增1,再返回其值。i++; //后置++i; //前置注意这里的前置和后置是说的运算符。二者的语义则是一样的,都是将原值增1。但是对于一个非内建类型,在重载这两个操作符后,单独使用在性能方面是否有差别?来考察它们的实现先看下面这个返回对象的分析:class C{pub

2012-06-09 00:19:46 757

转载 面试时的那点事

面试时的那点事      算来毕业也将近两年了,从刚回写程序开始,面试过的公司是屈指可数,难说算坏算好啊。主席老人家说过要在战斗中壮大自己,看来我历练的还远远不够,不过在有限的斗争中,也总结了些许,与大家共勉之。      说来有些问题太过于tricky,如果过分沉浸在这些奇巧淫技里,反倒害了自己,不如把精力投入到更有效的地方。偏偏还能碰到有些人就喜欢追究这类问题,就像孔乙己一样因为知

2012-06-09 00:16:16 652

转载 设计只能在堆或者栈上创建的类

看到了CSDN一篇帖子在讨论这个问题,某牛给出了回答,于是加以整理了一下设计只能在堆上分配的类方法:将类的构造函数或者析构函数设置为私有,迫使类对象在栈的构造时编译出错[cpp] view plaincopy#include   using namespace std;  class OnlyHeap  {  public

2012-06-08 22:17:54 600

原创 swap函数的低级错误写法

#includeusing namespace std;void swap(int &a,int &b){ // cout<<"citation"<<endl; int t=a; a=b; b=t;}/*void swap(int *a,int *b){ cout<<a<<"\t"<<b<<endl<<endl; co

2012-06-08 19:52:43 1216

转载 每天工作4小时的程序员

每个人都熟悉这种作息规律:早上9点去上班,坐在电脑前面,编一天的程序,下午5点下班回家。如今,非常感谢蒂莫西·费里斯 (Timothy Ferriss)的《每周工作4小时》,我开始重新思考应该如何工作,如何让自己变成更有效率的程序员。最近,我把我的从周一到周五的作息规律做了一次较大的调整。很长时间以来,我一直像所有其他程序员那样工作、休息。但就在2011年的下半年,我开 始了一项试验,想看

2012-06-08 17:44:28 647

转载 类内部存储的东西:太简洁了----小话c++(5)

http://blog.csdn.net/cxsjabcabc/article/details/7623630想知道一个类内部是什么,没有比知道它存储的数据还更直接的了。Q: 为什么一个不包含任何成员变量的类的大小不是0?如下代码:[cpp] view plaincopy#include   using namespa

2012-06-08 17:42:48 1801

转载 Google研究院公布最新F1数据库 将NoSQL与RDBMS有机融合

导读:大数据时代的来临也促使NoSQL数据库迅速崛起,但这并不意味着传统关系数据库即将消亡。近日Google研究院就推出被称为F1的新型数据库,F1作为一种混合型数据库融合了BigTable的高扩展性和SQL数据库的可用性和功能性。F1数据库作者共有12人,清单如下:Jeff Shute、Mircea Oancea、Stephan Ellner、Ben Handy、Eric Rollins、Bar

2012-06-08 17:38:21 1257

转载 Sleep(0)及其使用场景

Sleep(n)的作用是让当前线程睡眠n毫秒,以便执行其他线程,如果没有其他线程,那睡眠n毫秒后,继续执行。    而如果n=0,Sleep(0)是指CPU交出当前线程的执行权,让CPU去执行其他线程。也就是放弃当前线程的时间片,转而执行其他线程。    那么,Sleep(0)应该在那种情况下使用? 一般来说,如果当前线程比较耗时比较占CPU资源,可以在结尾处加上Sleep(0), 这样效

2012-06-08 17:37:07 680

原创 Handle的实现

Handle的实现在这里主要是残开淘宝的源代码和c++沉思录在淘宝的代码里面,定义了一个HandleBase类,他是handle的基类,里面主要的操作是:1、定义一个Handle准备控制的对象的指针2、get函数获得这个指针3、operator*解引用和->操作符4、bool函数,指针是否为NULL5、各种关系操作符,在这里定义成非类的成员函数接着是正式的Handle类

2012-06-08 14:10:07 799

转载 数据结构_Hash通过liner的方法解决冲突

题目链接:http://acm.fzu.edu.cn/problem.php?pid=1353 题目大意:给定100万个木头名称,相同的为一个种类,种类不超过1万,问每个种类出现的概率 解题思路:这题不复杂,简单排序同类的就扎堆了,然后直接判断也能卡时间卡过。正解是用Hash求解,由于每个名称最长是30,所以直接用个数组记录出现次数也不合适,会MLE.那就随机用

2012-06-07 19:50:48 593

原创 C++设计:代理类

#include#include#includeusing namespace std;class Base{public: virtual int get()const = 0; virtual void set() = 0; virtual Base* copy()=0;};class A:public Base{public: A(){} int get()c

2012-06-07 19:05:19 559

原创 代理模式

简介  即Proxy Pattern,23种java常用设计模式之一。代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。  代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。  代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象

2012-06-07 18:20:47 472

原创 类设计者的核查表

设计一个类的时候需要考虑的问题:1、你的类是否需要一个构造函数2、你的数据成员是否私有化使用函数返回私有数据成员的值,并且函数要使用const,说明私有数据成员不能被修改。3、你的类是否需要一个无参的构造函数能否定义成数组的形式4、是不是每个构造函数初始化所有的数据成员初始化时构造函数的主要任务5、类是否需要析构函数看类是够使用了

2012-06-07 18:09:58 606

转载 Linux 内核网络优化

http://blog.csdn.net/ysdaniel/article/details/7307091核心的网络功能,所以相关的设定数据都是放置在 /proc/sys/net/ipv4/ 这个目录当中。 至于该目录下各个档案的详细资料,建议大家可以参考核心的说明文件: /usr/src/linux-{version}/networking/ip-sysctl.txt

2012-06-07 12:41:36 1167

原创 装饰模式

概述  JAVA23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。编辑本段装饰模式的特点  (1) 装饰对象和真实对象有相同的接口。这样客户端对象就可以以和真实对象相同的方式和装饰对象交互。  (2) 装饰对

2012-06-07 12:38:28 462

转载 并发编程学习总结

http://blog.csdn.net/chgaowei/article/details/7237673我看书有个特点,不写笔记,就感觉好像没有看过书,印象不深刻(虽然写了也未必深刻),所以我看书会比较慢,笔记会很多。这里总结一下并发。最近学习《深入理解计算机系统》,最后一章中讲到了并发。之前一直以为并发是为了提高性能,书中将并发理解为逻辑控制流在时间上的重叠。简单的说,就是

2012-06-06 13:02:21 412

转载 开源软件

(1) libeventhttp://libevent.org/(2) libevhttp://software.schmorp.de/pkg/libev.html(3) folly - C++11, cloud service, hosted by FB.https://github.com/facebook/folly(4) Casa

2012-06-06 12:59:49 397

转载 c++ string使用详解

http://blog.csdn.net/wallwind/article/details/6932348之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简

2012-06-06 12:58:45 462

转载 Linux服务器上11种网络连接状态

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

2012-06-06 12:55:01 466

转载 Lisp的永恒之道

Lisp之魅长久以来,Lisp一直被许多人视为史上最非凡的编程语言。它不仅在50多年前诞生的时候带来了诸多革命性的创新并极大地影响了后来编程语言的发展,即使在一大批现代语言不断涌现的今天,Lisp的诸多特性仍然未被超越。当各式各样的编程语言摆在面前,我们可以从运行效率、学习曲线、社区活跃度、厂商支持等多种不同的角度进行评判和选择,但我特别看中的一点在于语言能否有效地表达编程者的设计思想。学

2012-06-06 12:25:28 542

转载 分布式系统编程,你到哪一级了?

介绍当分布式系统编程成为你生活中的一部分时,你需要经历一段学习曲线。这篇文章描述了一下我当前在这个领域大致属于哪个层次,并希望能为你指出足够多的错误,从别人的错误中学习,从而使你能以最优的路径通向成功。先声明一下,我在1995年时达到第1级,我现在处于第3级。你自己属于哪一级呢?第0级:完全一无所知每个程序员都从这一级开始。我不会在此浪费太多口舌,因为这实在没什么太多可说的

2012-06-06 12:24:17 646

转载 Python中函数的参数定义和可变参数

刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解。其实只要把函数参数定义搞清楚了,就不难理解了。先说说函数定义,我们都知道,下面的代码定义了一个函数funcAdef funcA():  pass    显然,函数funcA没有参数(同时啥也不干:D)。下面这个函数fun

2012-06-05 14:39:17 407

原创 indent工具,将代码格式化成内核代码的格式

Command:indent -kr -i8 test.cindent工具可以把代码格式化成某种风格,以上命令就是把代码格式化成linux内核代码的风格。-kr 选项表示K&R风格-i8 选项表示缩进8个空格的长度如果没有使用-nut选项,则每8个缩进空格会自动用一个Tab代替

2012-06-04 09:58:47 783

转载 qsort和bsearch的使用

#include#include#include#include#includeusing namespace std;#define N 15int a[N];int cmp(const void *x,const void *y){    return (*(int*)x)-(*(int*)y);}int char

2012-06-02 20:54:11 582

转载 整数的分解

整数的分解:求解分解数目和分解的形式#include#includeusing namespace std;int a[105];int len;void print(int m){ for(int i=0;i<m-1;i++) { cout<<a[i]<<"+"; } cout<<a[m-1]<<endl; len++;

2012-06-02 20:28:45 431

转载 priorit—queue用法

priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue  用法相似的 priority_queue, 以加深对 priority_queue 的理解STL里面的 priority_queue

2012-06-02 20:14:27 601

空空如也

空空如也

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

TA关注的人

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