自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(73)
  • 资源 (7)
  • 收藏
  • 关注

原创 C中宏#和##的运用

 #include #include #include #include #define f(a,b) a##b#define g(a)  #a#define h(a) g(a)int main()   {       char a = a;          printf("%s/n",g(a)); // a    printf("%s/n

2009-11-17 21:05:00 128

原创 测试对C的掌握程度

 下面这个程序输出什么?enum {false,true};int main(){ int i=1; do { printf("%d/n",i); i++; if(i cont

2009-11-17 21:01:00 189

原创 C++多继承下虚函数

 直接上代码#include using namespace std;class A{ public: virtual void funcA(){}};class B1:public virtual A{ public: virtual void funcB1(){}};class B2:public virtual A{ public:

2009-11-14 11:37:00 162

转载 Exception specifications (C++ only)

 Exception specifications (C++ only)C++ provides a mechanism to ensure that a given function is limited tothrowing only a specified list of exceptions. An exception specification atthe b

2009-11-12 11:37:00 321

原创 static_cast和dynamic_cast

#include "head.h"class B{ public: virtual ~B(){} virtual void op1()=0;};class D1:public B{ public: void op1(){cout<<"D1::op1()/n";}; void op2(){cout<<"D1::op2()/n";}; virtual

2009-11-06 11:40:00 152

转载 位运算

=====   真正强的东西来了!   =====二进制中的1有奇数个还是偶数个    我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1。var   i,x,c:l

2009-10-21 15:53:00 114

原创 C++成员函数作为函数指针传递

不可以直接通过函数指针来调用类的非静态成员函数下面的例子将报错#include using namespace std;/*不可以直接通过函数指针来调用类的非静态成员函数*/typedef void (*PFN)();class A{    public:        void foo(){run(func);}    private: 

2009-10-20 23:42:00 306

原创 C++ static变量初始化问题

 首先static变量只有一次初始化,不管在类中还是在函数中..有这样一个函数:view plaincopy to clipboardprint?void Foo()  {      static int a=3; // initialize       std::cout     a++;  

2009-10-20 22:54:00 287

转载 [c/c++]函数参数缺省值

document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text");

2009-10-20 17:06:00 276

原创 参数传递类型提升

#include using namespace std;void test(char a){coutvoid test(int a){coutvoid test(float a){cout//void test(double a){coutint main(void){    test(1);    test(c);    test(2+

2009-10-20 16:34:00 123

原创 拷贝构造函数 赋值操作符

#include using namespace std;class A{    public:        A(){cout        A(A&a){cout        A & operator=(const A &a){cout};int main(void){    A a;    A b(a);    A c=a;//对

2009-10-20 16:01:00 82

原创 printf的参数

#include #include using namespace std;int main(void){    unsigned short ch=0xFFFE;    printf("%x,%x/n",ch,(short)ch);    return 0;}传给printf的参数当作int型处理 -1是0xFFFFFFFF 

2009-10-20 15:54:00 95

原创 EC++::Item 9::Never call virtual functions during construction or destruction

#include using namespace std;class Base{    public:        Base(){Init();}        virtual void Init(){cout        void func(){cout};class Derived:public Base{    public:        v

2009-10-20 15:42:00 193

原创 Gcc参数压栈顺序

#include void func(int i,int j,int k);int main(void){ static int a=0; func(a++,++a,a++); return 0;}void func(int i,int j,int k){ int l=1; int m=2; int n=3; int *A=(int *)mall

2009-10-20 11:16:00 756

转载 C++类型转换

C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。看似问题复杂化了,其实不然。C风格的类型转换在程序语句中难以识别,类型转换是去const,还是int转换成char,或是子类指针转换成父类指针?C括号风格的强制类型转换解决不了这些问题。C++的4种类型转换能

2009-10-19 21:10:00 239

原创 一条语句打印1到n,再打印n到1

写一个函数 int p(int i, int N); 能够输出i到N再到i,即以参数1,7调用函数,输出结果为 1 2 3 4 5 6 77 6 5 4 3 2 1 要求只用一个语句完成,不允许用?:等n多操作符和关键字 #include using namespace std;#define PRINT(

2009-10-19 17:44:00 266

原创 TCP/IP illustrated in figures

TCP/IP ilustated in figures   

2009-10-19 16:29:00 285

转载 RAID Level From Wiki

RAID 0RAID 1RAID 3RAID 4RAID 5RA

2009-10-19 16:04:00 335

原创 Fibonacci数列的一些恒等式

      F1 + F2 + F3 + ... + Fn = Fn + 2 - 1F1 + 2F2 + 3F3 + ... + nFn = nFn + 2 - Fn + 3 + 2F1 + F3 + F5 + ... + F2

2009-10-19 11:05:00 448

原创 Java String类解析

1. 堆与string poolString s1=new String("abc");String s2="abc"; 2.intern()方法intern()方法获取string pool中字符串 3. StringBuilder用来构造StringString s="Hello";String s1="Hello"+"World"String s2=s

2009-10-17 22:35:00 188

转载 Linux下通用线程池的创建与使用

Linux下通用线程池的创建与使用本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。 为

2009-10-16 17:11:00 550

原创 Linux下调用pthread库实现简单线程池

#include #include #include #include #include #include void * routine(void * arg);int pool_add_job(void *(*process)(void * arg),void *arg);int pool_init(unsigned int thread_num);int p

2009-10-15 21:47:00 2021 2

原创 思想永远比知识重要:调和级数,欧拉常数

今天看到一道有趣的题目,用的思想跟之前讲过的N架飞机问题很类似,都是调和级数的应用调和级数 1+1/2+1/3+1/4+...+1/n= ln(n+1)+r欧拉常数 r是常量约等于0.577218蚂蚁橡皮筋问题:一只蚂蚁,以1的速度从橡皮筋的一端向另一端爬,同时橡皮筋以10的速度拉长,请问蚂蚁最终能爬到终点么?解法1:我们可以列出蚂蚁

2009-10-15 17:01:00 1459

原创 用位运算求最大值最小值

#include using namespace std;#define AB(a,b)  (((a-b)>>31)&0x1)void minmax(int a,int b){    int max,min;    max=(abs(a-b)+a+b)/2;    min=((a+b)-abs(a-b))/2;    cout} /*Use the

2009-10-15 16:08:00 792

原创 C traps and Puzzles

下面的例子都在Ubuntu8.04 GCC下编译的结果,有些没有给结果编程一定要自己动手试一试!1.定义与声明,定义要分配内存,声明只是声明在别处定义了int a;     //定义extern int a;  //声明 char str[100]extern char str[]  //ok char * str[]extern char str[]

2009-10-14 11:27:00 140

原创 C++题收集

用代码说明问题1.多态#include using namespace std;class A{public: virtual void print(void) { cout <<"A::print()" <<endl; }};class B:public A{public: virtual void print(void) { co

2009-10-12 20:42:00 328

转载 大端法,小端法字节序

关于字节序(大端法、小端法)的定义 《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。 也可以说: 1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 2.大端法(Big

2009-10-12 19:59:00 507 1

原创 等概率随机数问题

问题:1-6之间的等随即数生成器,如何生成1-N之间的等随即数生成器O(logN)复杂度,扩展一点就是如何用n进制数去逼近N 例如用 随即生成器A(1,2,3,4,5,6)生成区间1-N之间的随即生成器B,我们可以算算需要调用多少次A来生成B 假设需要m位6进制来表示N,那么m=floor(lgN/lg6+1) 同时用m位6进制产生的冗余度  d=pow(6,m)/N

2009-10-12 17:16:00 420

原创 C++空类,默认产生哪些成员函数

class Empty{public:    Empty();                          // 缺省构造函数    Empty( const Empty& );            // 拷贝构造函数    ~Empty();                         // 析构函数    Empty& operator=( const Em

2009-10-12 15:56:00 379

原创 1架飞机,加满油可以跑1的距离,问N架飞机最多能跑多远

问题:1架飞机,加满油可以跑1的距离,问N架飞机最多能跑多远,要确保除了最远的飞机外,其他飞机都能安全返航?昨天同学出了这个问题,晚上仔细想了想这个问题还挺有趣的。首先题目的意思允许我们在不同的飞机之间交换油,也就是一家飞机可以把一部分油分给其他飞机,然后自己再继续飞或者返航下面分两种情况来考虑1.假设每架飞机只能加一次油,答案是:N趋向无穷大时为2(1)首先我们证明不可能

2009-10-10 22:06:00 2524 2

原创 blp 4th edition-Chapter 14:Semaphores,Shared Memory,and Message Queues.

Semaphore: for managing access to resourcesShared memory:for highly efficient data sharing between programsMessaging:for an easy way of passing data between programs 1.Semaphores一般来说一个thread

2009-10-10 20:29:00 354

原创 blp 4th edition-Chapter 11-Processes and Signals

Starting New Processint system(const char * string);等同于sh -c string  用exec函数族Replacing a Process Imageexec函数族replaces the current process with a new process specified by the path or file

2009-10-10 09:23:00 177

原创 blp 4th edition-Chapter 13-Inter Process Communication:Pipes

 Pipe:connecting a data flow from one process to another进程管道:Process PipesFILE * popen(const char command,const char *open_mode);command:the name of the program to runopen_mode:must be "r" or

2009-10-09 10:51:00 293

原创 blp 4th edition-Chapter 12-Posix threads

创建线程int pthread_create(pthread_t *thread,pthread_attr_t *attr,void *(*start_routine)(void *),void *arg);return 0 on success,an error number if anything goes wrong结束线程void pthread_exit(void * r

2009-10-09 09:43:00 231

转载 C++中const用法总结

作者JuKevin1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的

2009-10-08 20:05:00 199

原创 C++中自增和自减操作符的重载

自增(自减)的前后缀操作符由于没有带参数,所以重载的时候要区别开来处理,具体的做法是给后缀操作符号一个int 型的形参,这样编译器会自动传递实参0过去。实现的原则是一切向int看齐class UPInt {                            // "unlimited precision int"public:  UPInt& operator++();    

2009-10-08 19:35:00 563

原创 C++中的引用和指针

实际上引用可以被看作一个const指针,每次使用的时候都会取值1. 指针可以指向NULL,但引用则必须引用非空的对象char *pc=NULL;char &rc=*pc;是未定义的 不同的编译器处理可能不同2.引用必须在定义的时候初始化,否则报错string& rs;             // error! References must be initialized

2009-10-08 19:15:00 220

转载 博弈论初步

 游戏1l    有两个游戏者:A和B。l    有21颗石子。l    两人轮流取走石子,每次可取1、2或3颗。l    A先取。l    取走最后一颗石子的人获胜,即没有石子可取的人算输。如果剩下1、2或3颗石子,那么接下来取的人就能获胜;如果剩下4颗,那么无论接下来的人怎么取,都会出现前面这种情况,所以接下来取的人一定会输;如果剩下5、6或7颗石子,那么接下来

2009-10-08 16:41:00 216

转载 博弈论

一、Nim游戏重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。Nim游戏是博弈论中最经典的模型之一,它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。Nim 游戏是组合游戏(Combinatorial Games)的一种,准确来

2009-10-08 16:18:00 194

原创 异或解决取石子问题

1. 首先给出下面会用到的几条异或的性质性质1:异或满足交换律,结合律性质2:如果a性质3:如果a证明:a      由性质2有 (a xor b)+2^t=a xor b xor 2^t=a xor (b+2^t)性质4:对任意a,偶数个a异或结果为0,奇数个a异或结果为a  2.对一个非负整数序列定义平衡态和非平衡态对n个非负整数序列A1,A2,..

2009-10-08 10:41:00 882 2

tcp ip illustrated volume 1

tcp ip illustrated volume 1

2009-09-21

《effecitv c++》 3rd edition

《effecitv c++》 3rd edition

2009-09-15

C语言库函数速查

C语言 库函数 速查

2008-06-19

算法导论习题答案

算法导论的部分答案 教师指导手册

2008-06-19

nutch入门学习

nutch入门学习的资料

2008-06-19

统计学习理论的本质

vapnik的大作 统计学习的圣经

2008-06-19

linux程序设计第四版英文版

linux程序设计最新版本 原版

2008-06-19

空空如也

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

TA关注的人

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