2012年5月23日
摘要: 默认实参是一种虽然并不普遍、但在多数情况下仍然适用的实参值。调用函数时,可以省略有默认值的实参。编译器会为我们省略的实参提供默认值。默认实参是通过给形参表中的形参提供明确的初始值来指定的。程序员可为一个或多个形参定义默认值。但是,如果有一个形参具有默认实参,那么,它后面所有的形参都必须有默认实参。例如,下面的函数创建并初始化了一个 string 对象,用于模拟窗口屏幕。此函数为窗口屏幕的高、宽和背景字符提供了默认实参:string screenInit(string::size_type height = 24,string::size_type width = 80,char backgro 阅读全文
posted @ 2012-05-23 15:25 york_hust 阅读(1645) 评论(0) 推荐(0) 编辑
  2012年5月22日
摘要: char *a=0是指给a所指的位置赋值'\0'与char *a='\0'是一个意思下面的例子可以说明:char str[] = "abcdefg";char *ptr = NULL;prt = str + 2; //指向c*prt = 0; //str 为 ab,因为现在str[]=ab'\0'defg'\0'*prt = 'c'; //str 为 abcdefg 阅读全文
posted @ 2012-05-22 17:43 york_hust 阅读(324) 评论(0) 推荐(0) 编辑
摘要: inline函数我们看下面的函数,函数体中只有一行语句:double Average(double total, int number){return total/number;}定义这么简单的函数有必要吗?实际上,它还是有一些优点的:第一,它使程序更可读;第二,它使这段代码可以重复使用。但是,它也有缺点:当它被频繁地调用的时候,由于调用函数的开销,会对应用程序的性能(时间+空间效率,这儿特指时间)有损失。例如,Average在一个循环语句中重复调用几千次,会降低程序的执行效率。那么,有办法避免函数调用的开销吗?对于上面的函数,我么可以把它定义为内联函数的形式:inline double Av 阅读全文
posted @ 2012-05-22 16:29 york_hust 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是相对独立的,在编 译(compile)时不需要与其他文件互通,只需要在编译成目标文件后再与其他的目标文件做一次链接(link)就行了。比如,在文件a.cpp中定义 了一个全局函数“void a() {}”,而在文 阅读全文
posted @ 2012-05-22 16:03 york_hust 阅读(267) 评论(0) 推荐(0) 编辑
  2012年5月18日
摘要: GF(2m)域当m=8时,本原多项式为P(x) = x8+ x4+x3+ x2+ 1 .这个很重要,因为一切化解都来源与此式。在伽罗华域中,加法等同于对应位异或,所以现在把α定义为P(x) = 0的根,即 α8+α4+α3+α2+1 = 0 即可以得到 α8=α4+α3+α2+1接着先给出下表付推导过程下面就按以下规则进行乘法运算 0=000 就是0 1=001 就是1 2=0010 就是x+0=x 3=0011 就是x+1 4=00100 就是x^2 然后对于两个变量 u,v 可以先计算两个对应多项式的乘积(需要注意的是加法是模2的,或者说是异或运算), 比如 ... 阅读全文
posted @ 2012-05-18 16:58 york_hust 阅读(4143) 评论(0) 推荐(0) 编辑
摘要: 1. IntroductionReed-Solomon codes are block-based error correcting codes with a wide range of applications in digital communications and storage. Reed-Solomon codes are used to correct errors in many systems including:Storage devices (including tape, Compact Disk, DVD, barcodes, etc)Wireless or mobi 阅读全文
posted @ 2012-05-18 16:57 york_hust 阅读(2433) 评论(0) 推荐(0) 编辑
  2012年3月30日
摘要: 转自:http://linugb118.blog.51cto.com/272628/420738Netty 是JBoss旗下的io传输的框架,他利用java里面的nio来实现高效,稳定的io传输。作为io传输,就会有client和server,下面我们看看用netty怎样写client和serverClient:需要做的事情:1.配置client启动类 ClientBootstrap bootstrap = new ClientBootstrap(..)2.根据不同的协议或者模式为client启动类设置pipelineFactory。这里telnet pipline Factory 在nett 阅读全文
posted @ 2012-03-30 10:16 york_hust 阅读(533) 评论(0) 推荐(0) 编辑
  2012年3月29日
摘要: VirtualBox中有4中网络连接方式:NATBridged AdapterInternalHost-only AdapterVMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式。要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方。先来一张图,通过这张图就很容易看出这4种方式的区别:(注:此图直接取至Finalbug的Blog,表示感谢)再来用文字做详细的解释(其实归结起来就是上面的那张图):1、NATNAT:Network Address Translation,网络地址转换NAT模式是 阅读全文
posted @ 2012-03-29 10:38 york_hust 阅读(52261) 评论(3) 推荐(9) 编辑
  2012年3月28日
摘要: 拜占庭将军问题(Byzantine Generals Problem),是由莱斯利兰伯特提出的点对点通信中的基本问题。 在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算机 (Coordinator / Commander) 或成员计算机 (Member / Lieutanent) 可能因系统错误并交换错的讯息,导致影响最终的系统一致性。拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法 (但无法找到一个绝对的答案,只可以用来验证一个机制的有效程度)。目录[隐藏]1起源2两军问题3可能的解决办法[来源请求]3.1条件3.2例子[编辑]起源拜占庭位于现在土耳其 阅读全文
posted @ 2012-03-28 10:54 york_hust 阅读(496) 评论(0) 推荐(0) 编辑
摘要: Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是LaTeX中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递的一致性算法。[1]这个算法被认为是类似算法中最有效的。目录[隐藏]1问题和假设2算法2.1算法的提出与证明2.2算法的内容2.2.1决议的提出与通过2.2.2实例2.2.2.1情况一2.2.2.2情况二2.2.2.3情况三2.2.3决议的发布2.2.4Progress 的保证3其他4参考文献[编辑]问题和假设Paxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统 阅读全文
posted @ 2012-03-28 10:53 york_hust 阅读(1257) 评论(0) 推荐(0) 编辑