代码改变世界

[置顶]给定n, 求出小于n的所有数中1的位数

2011-10-21 08:20 by zhiyzhan, 256 阅读, 0 推荐, 收藏,
摘要:看到qiang.xu的博客中得每日一题 http://www.cnblogs.com/xuqiang/archive/2010/11/20/1953393.html,然后也看到给出的算法,正确性无疑,但是算法复杂度随着输入数字的增大了成正比增加,以至于输入是百万千万的时候就很难算出来了,于是重新设计了一下算法,还没有太仔细验证正确性。原作者给出的代码#include <stdio.h>#include <stdlib.h>// 给定一个i,然后返回i中数字1的个数,比如// 1251返回的是2int countTotal1Nums(int i){ int count = 阅读全文

Daemon in Linux

2013-03-27 14:37 by zhiyzhan, 112 阅读, 0 推荐, 收藏,
摘要:僵尸进程 阅读全文

[转] c++静态成员小结,c++,static

2011-10-26 00:37 by zhiyzhan, 123 阅读, 0 推荐, 收藏,
摘要:转自:http://hi.baidu.com/xiaoxin_ye/blog/item/83a51ee7c482782ab93820c6.html本人注:注意类的static成员在类中只是声明,声明就是告诉编译器我有这么个东西,他会在别的地方定义。因此static成员需要在其他地方如cpp中定义,但是要确保定义只能一次,确保不要重复定义。另外定义的同时可以作初始化。类中的静态成员真是个让人爱恨交加的特性。我曾经在面试时,被主考官抓住这个问题一阵穷追猛打,直把我问的面红耳赤,败下阵来。所以回来之后,我痛定思痛,决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。静态类 阅读全文

[转]C++ 对象的内存布局

2011-10-24 05:42 by zhiyzhan, 111 阅读, 0 推荐, 收藏,
摘要:转自:http://blog.csdn.net/haoel/article/details/3081328前言07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的问题,也是为了图一些表达上方便和简单。不想,这篇文章成为了打开C++对象模型内存布局的一个引子,引发了大家对C++对象的更深层次的讨论。当然,我之前的文章还有很多方面没有涉及,从我个人感觉下来,在谈论虚函 阅读全文

[转]堆和栈的区别

2011-10-24 04:11 by zhiyzhan, 125 阅读, 0 推荐, 收藏,
摘要:转自 http://blog.csdn.net/hairetz/article/details/4141043一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块... 阅读全文

[转]C++ 虚函数表解析

2011-10-24 03:16 by zhiyzhan, 113 阅读, 0 推荐, 收藏,
摘要:转自:http://blog.csdn.net/haoel/article/details/1948051前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家一个清晰 阅读全文

C++中虚基类 Virtual Base Class 的作用

2011-10-23 12:39 by zhiyzhan, 757 阅读, 0 推荐, 收藏,
摘要:Virtual base classes (C++ only)Suppose you have two derived classes B and C that have a common base class A, and you also have another class D that inherits from B and C. You can declare the base class A as virtual to ensure that B and C share the same subobject of A.In the following example, an obj 阅读全文

[转]c++类继承中的using声明,派生类中用using声明改变基类成员的访问权限

2011-10-23 12:35 by zhiyzhan, 450 阅读, 0 推荐, 收藏,
摘要:http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fcplr142.htm 这里讨论的可能有点问题,但也可能是编译器的不同造成的,验证以下转载是对的:转自:http://blog.csdn.net/lfw19891101/article/details/4783217以下观点用visual studio 2008 c++ 试验可行,但难免有误,如发现错误请指出。在《c++primer第四版中文》p572页的注解中指出: 阅读全文

[转]友元函数(friend)

2011-10-23 12:26 by zhiyzhan, 216 阅读, 0 推荐, 收藏,
摘要:转自: http://www.quanxue.cn/JC_CLanguage/Cpp/Cpp14.html类的外部,也就是通过实例来访问私有(private)或保护(protected)成员,这是被禁止的。但从实用性来说,的确有时很需要在外部访 问,C++增加了一种称之为“友元(friend)”函数的申明,将“特权”赋给一些函数(可以是全局函数,也可以是其它类的成员函数),使之能够访问该 类的私有和保护成员。友元函数必须在类里面申明,而且友元函数一定不是该类的成员函数。因此,这样的“特权”实际上已经不是完全的面向对象设计了,当然,我们也可以不用它。另外,友元函数的申明在派生类无效,除非派生类中 阅读全文

[转]判断大端小端

2011-10-23 02:27 by zhiyzhan, 153 阅读, 0 推荐, 收藏,
摘要:转自:http://blog.csdn.net/hongjiujing/article/details/2173909int i=1; char *p=(char *)&i; if(*p==1) printf("1"); else printf("2"); 大小端存储问题,如果小端方式中(i占至少两个字节的长度)则i所分配的内存最小地址那个字节中就存着1,其他字节是0.大端的话则1在i的最高地址字节处存放,char是一个字节,所以强制将char型量p指向i则p指向的一定是i的最低地址,那么就可以判断p中的值是不是1来确定是不是小端。请写一个C函数 阅读全文

[转]如何理解C语言中的复杂声明

2011-10-22 13:07 by zhiyzhan, 189 阅读, 0 推荐, 收藏,
摘要:转自:http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=12305另外一份很好的资料 http://www.doc88.com/p-5750296836.htmlC语言声明的复杂性多来自于各各种类型声明的嵌套。最为典型的便是指针、函数以及数组三者之间的混用。要想准确地理解复杂声明的确切含义,就需要一个清晰的条理逻辑。结合网络上的教程,修修补补完成了这篇教程。网上的范例有很多,如:1、int (*func)(int *p);2、int (*func)( int *p, int (*f )( int*) );3、i 阅读全文