自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

胖奇 的专栏

The Pursuit of Happyness

  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

转载 C++析构函数为什么要为虚函数

1.为什么基类的析构函数是虚函数?  在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。  下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html  a.第一段代码  #includeusing namespace std;class ClxBase{

2013-08-30 14:08:22 555

转载 Mutex vs. Semaphore, what is the difference?

Mutex vs. Semaphore, what is the difference?The Toilet Example  (c) Copyright 2005, Niclas Winquist ;)Mutex:Is a key to a toilet. One person can have the key - occupy the toilet - at the tim

2013-08-28 14:43:22 514

转载 大话设计模式之一:单例模式

定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:类图知识点:1.类图分为三部分,依次是类名、属性、方法2.以>结尾的为注释信息3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。4.带下划线的属性或方法代表是静态的。5.对类图中对象的关

2013-07-19 13:45:05 532

转载 vector,list,deque,set,map of STL

List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动数据,只需要

2013-07-19 09:55:53 487

转载 STL中vector、list、deque和map的区别

1 vector    向量 相当于一个数组    在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存的大小的感觉。通常此默认的内存分配能完成大部分情况下的存

2013-07-19 09:48:10 555

转载 for循环中有多个限制结束条件的正确写法(小心逗号运算符)

for(i=a,j=b; id; i++,j--){....}这种写法其实是逗号运算符, id 结果就是 j>d的结果~~要想限制,必须要加上&&正确写法如下:for(i=a,j=b; id; i++,j--){....} 逗号运算符:        可用于将相关的表达式链接在一起。由于逗号链接表达式从左到右进行计算,因此最右边的表达

2013-07-18 08:46:34 3493

转载 Linux源码中的mktime算法解析

我们知道,从CMOS中读出来的系统时间并不是time_t类型,而是类似于struct tm那样,年月日时分秒是分开存储的。    那么,要把它转化为系统便于处理的time_t类型,就需要算法进行转换。    我们都知道我们的公历还是比较复杂的,有大月小月,有闰年非闰年,处理起来会很麻烦。    但是Linux的源代码仅仅用了短短的几行就完成了这个复杂的转换(Gauss算法)

2013-07-05 15:33:02 493

转载 C++拷贝构造函数(深拷贝,浅拷贝)

对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include iostream>using namespace std;class CExample {private:     int a;

2013-05-28 16:17:28 365

转载 memcpy实现及优化

1:函数原型void * memcpy ( void * destination, const void * source, size_t num );函数作用参考:http://www.cplusplus.com/reference/clibrary/cstring/memcpy/Copy block of memoryCopies the values of

2013-05-28 15:21:39 743

转载 C++多态的实现原理

1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚函数来实现,结合动态绑定。5. 纯虚函数是虚函数再加上= 0。6. 抽象类是指包

2013-05-21 17:05:28 388

转载 C++中引用(&)的用法和应用实例

C++中引用(&)的用法和应用实例对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。引用是C++引入的

2013-04-01 16:34:25 569

转载 DHCP for IPv6原理及工作过程

1 DHCPv6概述    即插即用和自动配置是IPv6的一大优势,是目前研究的热点之一。与IPv4相对应,IPv6中的“被动”地址分配协议是动态主机配置协议DHCPv6。   DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6的动态主机配置协议)是针对IPv6编址方案设计的,为主机分配IPv6前缀、IPv6地址和其

2013-01-11 08:49:04 18015 2

转载 用C++ 设计一个不能被继承的类

题目:用C++ 设计一个不能被继承的类。分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。首先想到的是在C++ 中,子类的构造函数会自动调用父类的构

2013-01-10 09:13:14 317

原创 排序算法

1.冒泡排序 10个整数void maopao(int *list){ int i,j,temp; for(i=0;i<9;i++) for(j=0;j<9-i;j++) { if(list[j]<list[j+1]) { temp=list

2012-04-05 17:20:09 228

原创 编程实现位操作

1.对整型变量a,设置a的bit3,清楚a的bit3,保持其他位不变#define BIT3 (0x1<<3)static int a;void set_bit3(){ a |=BIT3;}void clear_bit3(){ a &=~BIT3}}2.把32位的unsigned int按位倒过来unsigned long reverse32(unsig

2012-04-05 15:33:23 324

转载 C++面试宝典2011

1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要

2012-04-05 10:03:12 420

原创 函数重写

重写strcpy函数char *strcpy1(char * str1, const char * str2){ assert((str1!=NULL)&&(str2!=NULL)); char *address =str1; while((*str++=*str2++)!=''); return address;}重写strlen函数

2012-04-01 17:25:34 413

原创 一次遍历找出整型数组中第二大数

const int MIN=-32767;int find_sed_max(int data[],int count){ int max_num=data[0]; int sed_num=MIN; for(int i=1;i<count;i++) { if(data[i]>max_num) { sed_nu

2012-03-31 14:24:04 1615

原创 华为面试

1.static有什么用途?(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指

2012-03-28 11:22:58 383

转载 linux的启动进程与服务

当年对dos开机流程熟知,帮助我解决了不少问题。对于Linux的研究自然也少不了这部分基础知道。LINUX的启动过程究竟是怎么样的?它要启动哪些服务?这些服务是做什么用的? deflag的这篇文章值得一读。本文以RED HAT LINUX9为范例介绍,其实大部分的LINUX都有相同的启动过程.启动过程大致分为:1)开机自检,读取MBR中的引导程序(比如,现在的GRUB,LI

2012-03-26 09:09:20 358

原创 程序员面试:字符串相关问题

1.回文数判断:int huiwenNum(long num) {long result =0;long i=num;while(i>=0){result=result *10 +i%10;i=i/10;}if(result ==num)return 1;elsereturn 0;}2.回文字符串判断:int huiwen

2012-03-20 11:04:11 388

原创 约瑟夫问题:n个人围成一圈从1开始报号,报到m的出圈,直到最后1个人。

面试中的程序题,没有写出来,后来百度了一下,发现时计算机二级考试中的大题。一般有两种方法,1使用数组,对n个人的数组(初始化全为1)进行标记,报到m的标为0。2使用循环链表。int baoShu(int n,int m){ int flag,i,j=0; int *arr=(int *)malloc(n*sizeof(int)); for(i=0;i<n;i++)

2012-03-20 10:51:20 2026

转载 20个影响你一生的小改变

Small,simple life changes can be powerful. Implementing some of these changes canliterally change your entire life. How do you change? Take on one change at atime, and go slowly. Implement each change

2012-02-09 14:03:14 628

转载 程序员面试宝典之sizeof使用规则及陷阱分析

1、什么是sizeof   首先看一下sizeof在msdn上的定义:   The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value o

2012-02-09 13:46:31 757

转载 程序员面试宝典之main()主函数结束之后

atexit( void (* function) (void) ) 一般程序执行到 main() 的结束就完成了, 如果想在程序结束时做一些事情, 可以尝试着用这个函数: atexit( void (* function) (void) )#include #include void f1(void){printf("exit f1\n");}void f

2012-02-09 13:09:28 482

转载 Protocol Buffer Basics: C++中文翻译(Google Protocol Buffers中文教程)

Protocol Buffer Basics: C++(Protocol Buffer基础:C++篇)本文来自learnhard的博客:http://www.codelast.com/ & http://blog.csdn.net/learnhard/)<br />This tutorial provides a basic C++ programmer's introduction to working with protocol buffers. By walking through creating

2011-03-02 15:20:00 1709 1

线程池模块详细设计说明书.doc

线程池模块详细设计说明书 linux下C++实现 linux下C++实现

2011-03-10

空空如也

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

TA关注的人

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