自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 编程细节

1.在使用STL的迭代器进行累加时,最好使用前置式递增:++iter 代替后置式递增:iter++,因为他比后者效率高,后者需要创建一个临时对象,因为它必须保存迭代器的原本位置并将它返回;

2010-06-30 10:53:00 387

转载 Linux_源码阅读工具

使用vim + cscope/ctags,就能够实现Source Insight的功能,可以很方便地查看分析源代码。关键词: vim, cscope, ctags, tags1. 查看vim是否支持cscope    $ vim --version | grep cscope 2. 编译支持cscope的VIM(--enable-cscope)    # USE="bash-completion cscope nls perl python -acl -gpm -minimal -ruby -vim-pag

2010-07-30 09:49:00 541

转载 Larbin_配置

配置英文原版说明:http://larbin.sourceforge.net/custom-eng.html#larbin.conflarbin.conf ################################################ Who are you ?# mail of the one who launched larbin (YOUR mail)From [email protected]# name of the bot (sent with http

2010-07-30 08:53:00 1169

转载 RB tree VS AVL tree

AVL trees are actually easier to implement than RB trees because there are fewer cases. And AVL trees require O(1) rotations on an insertion, whereas red-black trees require O(lg n). In practice, the speed of AVL trees versus red-black trees will d

2010-07-22 15:54:00 805

转载 海量数据处理

转自:http://www.yaronspace.cn/blog/index.php/archives/392发信人: phylips (星星||一年磨十剑), 信区: Algorithm标  题: 大数据量,海量数据 处理方法总结发信站: 兵马俑BBS (Thu Nov 26 16:32:38 2009), 本站(bbs.xjtu.edu.cn)最近有点忙,稍微空闲下来,发篇总结贴。大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司

2010-07-21 14:30:00 830

转载 sizeof和strlen

一、好首先看看sizeof和strlen在MSDN上的定义:首先看一MSDN上如何对sizeof进行定义的:sizeof Operatorsizeof expressionThe sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type s

2010-07-20 16:16:00 369

转载 线性表

// LinearList.h#ifndef _LINEARLIST_H_#define _LINEARLIST_H_#include using namespace std;template class LinearList{public: virtual bool IsEmpty() const=0; virtual int Length() const=0; virtual bool Find(int i, T& x) const=0; virtual in

2010-07-04 21:21:00 384

转载 export

<br />1.函数模版的编译模式分两种:完包含编译模式和局部编译模式(需要用export关键字) <br />2.不同的编译器对这两种编译模式的支持各不相同,但一般都支持完全包含编译模式(vc6.0就不支持export),具体支持情况需要参照具体使用的编译器文档 <br /><br />模版函数和普通函数在使用的时候有一定的区别: <br />(1)普通函数在使用的源文件中直接include该函数的声明即可 <br />(2)模版函数在使用的源文件中既要include模版函数的

2010-07-04 20:50:00 450

转载 volatile

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:     1). 并行设备的硬件寄存器(如:状态寄存器)     2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)     3). 多线程应用中被几个任务共享的变量     回答不出这

2010-06-29 14:56:00 332

转载 mutable

<br />关键字mutable的中文意思是:“可变的、易变的”与constant(即C++中const)是反义词。C++中的mutable是为了突破const限制而设置的,被mutable修饰的变量将永远处于可变状态,即使是位于const修饰的函数中。mutable又是一个奇怪的修饰符(specifier),它只能够用于一个类的非静态数据成员。下面我将讨论mutable 的语义和用法,但是首先我要解释一下 C++ 对象模型的一个关键概念。<br />对象的状态<br />   

2010-06-29 14:34:00 1054

转载 explicit

<br /> 在 C++ 中, 如果一个类有只有一个参数的构造函数,C++ 允许一种特殊的声明类变量的方式。在这种情况下,可以直接将一个对应于构造函数参数类型的数据直接赋值给类变量,编译器在编译时会自动进行类型转换,将对应于构造函数参数类型的数据转换为类的对象。 如果在构造函数前加上 explicit 修饰词, 则会禁止这种自动转换,在这种情况下, 即使将对应于构造函数参数类型的数据直接赋值给类变量,编译器也会报错。<br /> 下面以具体实例来说明。<br /> 建立people.cpp

2010-06-29 13:19:00 436

转载 关于动态语言和静态语言、强类型定义语言和弱类型定义语言的概念区分

<br />1、动态语言和静态语言<br />  通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。<br />(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。<br />(2)静态类型语言:静态类型语言与动态类型语言刚

2010-06-28 11:18:00 454

转载 为什么需要头文件? and 重定义问题

首先,我们可以将所有东西都放在一个.cpp文件内.然后编译器就将这个.cpp编译成.obj,obj是什么东西?就是编译单元了.一个程序,可以由一个编译单元组成,也可以有多个编译单元组成. 如果你不想让你的源代码变得很难阅读的话,就请使用多个编译单元吧.(一个函数不能放到两个编译单元里面,但两个以上就可以分别放在一个单元,也就是cpp里面)那么就是一个.cpp对应一个.obj,然后将所有的obj链接起来(通过一个叫链接器的程序),组成一个.exe,也就是程序了.如果一个.cpp要用到另一个.c

2010-06-28 09:00:00 1549

转载 程序执行过程

要理解一个程序的执行过程,首先要理解什么是编译器。我们用C语言写的程序,计算机只能识别机器语言(二进制指令),计算机并不能理解。因此,必须 将C语言转换为机器语言。编译器就是用来实现这一功能的。编译器将源代码文件按照一定的对应规则映射程计算机能够识别的二进制指令。关于源文件、目标文件和可执行文件源文件:保存源代码的文件(*.c, *.cpp)目标文件:编译器根据源文件创建的机器语言指令成为目标代码,包含目标代码的磁盘文件即目标文件。 一般为(*.obj)文件,Linux下为(*.o)文件。编

2010-06-28 08:34:00 2108 1

转载 inline

定义<br />内联函数从源代码层看,有函数的结构,而在编译后,却不具体函数的性质。编译时,类似宏替换地,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是否能形成内联函数,需要看编译器对该函数定义的具体处理。实现<br />有两种实现方式:  <br />1.在类声明的内部声明,而在类声明外部定义叫做显式内联函数,如:  <br />class display  <br />{   <br />      int t;  <br />      public

2010-06-27 16:53:00 465

转载 #ifdef、#ifndef、#if

这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2 其中#else部分也可以

2010-06-24 09:51:00 494

转载 声明和定义

在声明部分出现变量有两种情况: (1)一种是需要建立存储空间的,如:int a; (2)另一种是不要建立存储空间的,如:extern int a; 前者是"定义性声明" (defining declaration), 或者称为"定义"(definition); 后者是"引用性声明" (referencing declaration). 广义地说,声明包括定义,但并非所有的声明都是定义.对"int a;"来说,它既是定义又是声明; 对"extern a;"而言,它是声明不是定义. 一般为了叙述方便

2010-06-23 19:27:00 618

转载 extern "C"

<br />extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。  <br />(1) 被extern "C"限定的函数或变量是extern类型的;<br />       extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。<br />       记住,下列语句:   <br />      

2010-06-23 14:46:00 366

转载 标准I/O(buffered I/O)浅析

http://www.chinaunix.net/jh/23/982604.htmlCU有很多上讨论I/O操作的帖子,在这里发一篇我自己关于标准I/O的理解的帖子这里借用了glibc中标准I/O实现的细节,所以代码多是不可移植的.写的有点乱,很多东西都是自己的理解,这里只是抛砖引玉,期望和大家多多讨论一下.1. buffered I/O, 即标准I/O首先,要明确,unbuffered I/O只是相对于buffered I/O,即标准I/O来说的.而不是说unbuffered

2010-06-09 17:04:00 939

vc代码提示及其他信息插件

可以提示代码可以提示代码可以提示代码可以提示代码可以提示代码可以提示代码可以提示代码可以提示代码

2009-10-21

空空如也

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

TA关注的人

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