自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Factory Methods 工厂方法

摘要Abstract:本文主要是对《API Design for C++》中Factory Methods章节的翻译,若有不当之处,欢迎指正。关键字Key Words:C++、Factory Pattern、一、概述 Overview工厂方法是创建型模式,允许在不指定需要创建对象类型的情况下创建出对象。本质上来说,工厂方法就是一个通用的构造函数。C++中的构造函数有以下几种

2014-09-29 09:29:58 447

转载 C++之常量

1概述一个C++程序就是一系列数据与操作的集合。当一个C++程序开始运行的时候,与该程序相关的数据就会被加载到内存中。当数据与内存发生关联的时候,这些数据就会具有如下的特性:数据在内存中的地址。这个地址决定了数据在内存中的存储位置。在32位的系统中,每一个C++程序都具有4GB大小的内存地址空间,这个4GB大小的内存空间又被划分为若干个区域,如:栈区,堆区,全局(静态)区,文字常量

2014-09-26 19:47:07 403

转载 成员函数指针与高性能的C++委托

成员函数指针与高性能的C++委托Member Function Pointers and the Fastest Possible C++ Delegates 撰文:Don Clugston翻译:周翔 引子标准C++中没有真正的面向对象的函数指针。这一点对C++来说是不幸的,因为面向对象的指针(也叫做“闭包(closure)”或“委托(delegate)”)在一些语言中

2014-09-26 16:38:45 406

转载 volatile用法

volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i; ... int k = i; 

2014-09-25 19:47:45 279

转载 C/C++位域知识小结

几篇较全面的位域相关的文章:http://www.uplook.cn/blog/9/93362/C/C++位域(Bit-fields)之我见C中的位域与大小端问题内存对齐全攻略–涉及位域的内存对齐原则本文主要对位域相关知识进行了一下梳理,参考如下:C语言中的位域史上最全的C位域总结2C结构体之位域(位段) C/C++中

2014-09-25 16:50:20 586

转载 浮点数在计算机中存储方式(转)

作者: jillzhang    联系方式:jillzhang@126.com    本文为原创,转载请保留出处以及作者, 谢谢    C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit, double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?

2014-09-24 23:18:04 433

转载 C++ STL中哈希表 hash_map介绍

0 为什么需要hash_map用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改:岳不群-华山派掌门人,人称君子剑张三丰-武当掌门人,太极拳创始人东方不败-第一高手,葵花宝典...这些信息如果保存下来并不复杂,但是找起来比较麻烦。例如我要找"张三丰"的信

2014-09-24 12:15:23 468

转载 Hash表

Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。这个源于Hash表设计的特殊性,它采用了函数映射的思想将记录的存储位置与记录的关键字关联起来,从而能够很快速地进行查找。1.Hash表的设计思想  对于一般的线性表,比如链表,如果要存

2014-09-24 12:00:52 346

转载 Sublime Text2 快捷键汇总

插件使用方法:Ctrl+Shift+P 调用命令面板Install Package 安装扩展List Packages 列出全部扩展Remove Package 移除扩展Upgrade Package 升级扩展快捷键:Ctrl+D 选词,反复按快捷键,即可继续向下同时选中下一个相同的文本进行同时编辑Ctrl+G 跳转到相应

2014-09-24 10:37:10 449

转载 static_cast、dynamic_cast、reinterpret_cast和const_cast之间的区别

C-style cast举例: int i; double d; i = (int) d;上面的代码就是本来为double类型的d,通过(int)d将其转换成整形值,并将该值赋给整形变量i (注意d本身的值并没有发生改变)。这就是典型的c-style类型转换。下面是一个简单的程序:#include using namespace std;

2014-09-23 15:29:15 324

转载 预编译宏

不带参数的宏  -----------------------------------------------------形式:#define  宏名称   替换主体注意:替换主体中可以有空格空格不是替换主体的一部分(这也很好理解,因为编程的时候执行语句也一般是忽视中间的空格的就好比 a = 3; 与 a=3;是等价的一样 ),例如  #define SIX    

2014-09-21 17:15:57 2523

转载 c++单线程内存池

对于一般直接 new 与delete 性能较差,可以自己管理写内存的申请与释放。版本0:class Rational{public: Rational(int a=0, int b =1 ): n(a),d(b){}private: int n; int d;}; 版本1: 专用的内存管理器这版本是通过重

2014-09-20 10:08:11 475

转载 模板类的 友元模板函数

1234567891011121314151617181920212223242526272829303132333435

2014-09-11 19:32:10 723 1

转载 C++存储数据结构之四map

Map是c++的一个标准容器,它提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map构造函数;mapmapstring; mapmapint;mapmapstring; mapmapchar;mapmapchar; mapmapint;2. map添加数据;map maplive; 1.mapli

2014-09-11 16:13:43 567

转载 C++存储数据结构之三vector

ector简介   vector是STL中最常见的容器,它是一种顺序容器,支持随机访问。vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似,不同的地方就是:数组是静态分配空间,一旦分配了空间的大小,就不可再改变了;而vector是动态分配空间,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量。        vector的扩充机制:按照容器现在容量的一倍进行增长。v

2014-09-11 16:12:48 1074

转载 C++存储数据结构之二CArray

函数简介CArray::GetSize int GetSize( ) const;取得当前数组元素个数.CArray::GetUpperBound int GetUpperBound( ) const;最得最大的元素的索引,由于C的数组是从0开始,所以此函数的返回值比GetSize的返回值比小.CArray::SetSize void SetSize( in

2014-09-11 16:12:10 663

转载 C++存储数据结构之一List

双向循环链表list        list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vector不具备的。和vector另一点不

2014-09-11 16:11:40 691

转载 linux 技巧:使用 screen 管理你的远程会话

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断

2014-09-11 09:00:31 378

转载 boost::shared_ptr内部结构

本文是从过去自己的一篇博客中修改而来。因为年代久了,这篇博客的图片被CSDN升级搞丢了。所以现在重新绘制了结构图。老文位置:http://blog.csdn.net/sheismylife/article/details/1694939shared_ptr    shared_ptr源自于著名的boost库,智能指针自从Scott Meyers在其作品>首次提出并给出一个示范版

2014-09-09 15:26:22 734

转载 Boost智能指针:shared_ptr

共享指针 (shared_ptr) 是现在的 Boost 库中提供的,并且应该是将来 C++1x 的标准库中提供的一个模板类。在此之前,ISO/IEC 14882:2003 标准库 中的“自动指针 (auto_ptr)”也有类似的功能。显然 shared_ptr 要比 auto_ptr 从功能上来说应该强大一些。这篇文章主要介绍 shared_ptr 的最基本用法和注意事项,相当于入门级

2014-09-09 15:23:30 531

转载 关于wchar_t

(1)Unicode或者宽字符都没有改变char数据类型在C中的定义。     (2)C中的宽字符基於wchar_t数据类型,它在几个头文件包括WCHAR.H中都有定义,如下:     typedef   unsigned   short   wchar_t   ;     因此,wchar_t数据类型与无符号短整数型相同,都是16位宽。           (3)要定义包含一

2014-09-09 13:39:16 924

转载 开启xterm终端256色和终端下vim 256色

相同的colorschema,vim和gvim的颜色差距还是很大的,因为gvim使用X的颜色,而vim只能使用终端提供的颜色,所以造成了二者的显示差异。xterm开启256色现在的终端模拟器早就支持256色了,不过默认可能还是8色的。开启xterm终端,查看xterm终端支持的颜色$ tput colors8xterm终端默认还是8色的查看终端类型$

2014-09-08 23:26:46 22711 4

转载 其实Unix很简单

其实Unix很简单 陈皓 很多编程的朋友都在网上问我这样的几个问题,Unix怎么学?Unix怎么这么难?如何才能学好?并且让我给他们一些学好Unix的经验。在绝大多数时候,我发现问这些问题的朋友都有两个特点:1)对Unix有畏难心理,对其没有信心;2)喜欢用拿Windows来和Unix做比较。 这两种特点就像两个“心理暗示”,暗示着自己Unix很不好学,暗示着Uni

2014-09-04 20:28:12 392

转载 C++ 对象的内存布局(上)

C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel  点击这里查看下篇>>>前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非

2014-09-04 20:24:52 275

转载 C++ 对象的内存布局(下)

C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel  <<<点击这里查看上篇 重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。  其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节

2014-09-04 20:23:43 295

转载 C++ 虚函数表解析

C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R

2014-09-04 20:11:51 288

转载 google C/C++编程风格的一些摘要

前段时间看了下google c/c++编程风格,摘录一些要点记载于此,还请各位指点。  为了接下来清楚的阐述google C++编程规范,先阐述几个概念:  Pascal Case :当标识符由两个或者两个以上单词组成的时候,单词之间不加其他的符号,并且每个单词都必须大写,例如PascalCase。  camel Case: 当标识符由两个或者两个以上单词组成的时候,单词间

2014-09-03 21:23:55 641

转载 C++BUILDER的文件操作

在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是: 1、基于C的文件操作;2、基于C++的文件操作;3、基于WINAPI的文件操作;4、基于BCB库的文件操作;5、特殊文件的操作。 壹、基于C的文件操作   在ANSI C中,对文件的操

2014-09-01 22:23:32 792

C++11 标准

C++11 标准

2016-02-19

空空如也

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

TA关注的人

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