
c++
文章平均质量分 71
handerliu
这个作者很懒,什么都没留下…
展开
-
cocos2d-x学习笔记
源文件不能放在中文l原创 2014-06-25 11:53:43 · 679 阅读 · 0 评论 -
排序算法
选择排序1.直接选择排序时间复杂度:O(N^2)空间复杂度:O(1)算法思想:进行N趟排序,每一趟都从未排序序列中选择一个最大或最小的值放入排序序列中稳定性:不稳定templateint min_key(KeyType A[], int low, int high) //从数据集合中选择最小的关键字,并返回数组下标{ int min_pos = low; for(i原创 2012-10-02 19:07:24 · 762 阅读 · 0 评论 -
B-tree(C++实现)
定义一棵M(M>2)阶B-tree应该满足以下定义:每个结点的孩子结点个数不超过M个;非根结点的孩子结点个数不少于ceiling(M/2)个;N个结点关键字对应N+1个孩子结点;假设结点有关键件key1、key2、...、keyN,则有孩子结点指针child1、child2、...、childN、child(N+1),且有MaxKeyValue(child1)结点中存有关键字和原创 2012-09-16 16:41:34 · 5096 阅读 · 0 评论 -
B+树(C++实现)
定义:一棵M(M>2)阶的B+树满足以下定义:1.B+树中包含两种类型的结点:内结点和叶子结点。内结点存有关键字和孩子结点的指针,叶子结点存有关键字和数据;2.每一个关键字都会在叶子结点中出现,叶子结点按照关键字的大小排序,叶子结点中会存有指向兄弟结点的指针;3.一棵B+树一般存有两个指针:一个指向根结点,一个指向存有最小关键字的叶子结点;4.每个内结点至多原创 2012-09-15 16:28:50 · 24327 阅读 · 14 评论 -
SGI STL 空间配置器(allocator)源码剖析
空间配置器的作用我们知道,stl中的数据都是放到容器中的,容器需要存储空间,空间配置器就是负责容器存储空间的分配、回收等一系列内存操作。STL标准规范中描述的allocator模版类的必要声明:Constructors// Constructors used to create allocator objects.allocator(); // Default constr原创 2012-06-06 17:38:50 · 2942 阅读 · 2 评论 -
内存对齐之深度探索
(废话:最近接触到内存对齐概念,针对内存对齐的规则,我在vc中一一进行了验证,发现编译器确实对我的数据进行了内存对齐。我便知道内存对齐必定是有它的优点所在,是什么呢?我找的资料都是说内存对齐可以提高内存访问效率、可移植到不同的平台等等,但是为什么会这样呢,没有一个清晰的解释。下面便是我多天努力的成果!)编译器为什么要替我们内存对齐?学了计算机组成原理,了解了内存的基本单元是原创 2012-05-29 14:22:58 · 2500 阅读 · 4 评论 -
Chap2-构造函数语意学
如果一个类没有任何constructor,那么会有一个default constructor被隐式的声明出来,一个implicit default constructor将是一个trivial(无用的)constructor。但是在某些情况下,implicit default constructor将是一个nontrivial constructor,下面一一讨论:由编译器合成nontrivi原创 2012-05-26 11:17:25 · 610 阅读 · 0 评论 -
C++类overlode、override和overwrite详细解释
overload(重载),即函数重载:在同一个类中;函数名字相同;函数参数不同(类型不同、数量不同,两者满足其一即可);不以返回值类型不同作为函数重载的条件。override(覆盖),用于实现C++中多态:分别位于父类和子类中;子类改写父类中的virtual方法;与父类中的函数原型相同。overwrite(重写):与overload类似,但是范围不同原创 2012-05-25 20:01:16 · 2182 阅读 · 1 评论 -
char1-关于对象
key points:C++类中包含两种类型的数据成员:static、nonstaticC++类中包含三种类型的成员函数:static、nonstatic、virtualC++对象模型:nonstatic data members被配置于每一个类对象中,static data members被存放在个别的类对象之外。static和nonstatic function members也存原创 2012-05-25 17:10:16 · 787 阅读 · 0 评论 -
[c&cpp][memory] 内存对齐分配策略(含位域模式)
转载地址:http://www.cnblogs.com/alex-tech/archive/2011/03/24/1993856.html1:内存对齐定义: 现在使用的计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际上计算机系统对于基本数据类型在内存中的存放位置都有限制,要求这些数据存储首地址是某个数K的倍数,这样转载 2012-05-25 11:40:43 · 1344 阅读 · 0 评论 -
大端、小端问题详解
参考博客:http://www.cppblog.com/colorful/archive/2012/05/17/175182.html在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失原创 2012-05-25 10:06:51 · 1506 阅读 · 0 评论 -
.h头文件 .lib库文件 .dll动态链接库文件关系
.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件。如果要完成源代码的编译和链接,有头文件和lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。.h .lib .dll三者的关系是:H文件作用是:声明函数接口DLL文件作用是: 函转载 2012-05-21 20:52:40 · 2753 阅读 · 0 评论 -
谈谈程序设计语言、编译器和开发环境之间的关系
转载地址:http://computer.eefocus.com/lingyue/blog/09-03/167608_03695.html许多初学者都会对这三个概念区分不清,应该说这三个概念是完全不同的,不能混为一谈。在本文中,我就尽我最大的能力来讲讲这三个概念以及他们之间的关系。首先说程序设计语言,它同人类的自然语言一样也是一个语言,并且它是自然语言的一个子集。大家都知道自然语言转载 2012-05-12 15:34:02 · 4250 阅读 · 0 评论 -
C++中extern “C”含义深层探索
参考文章:http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html跪求指出错误!Why need it?extern "C"的根本目的是为了实现C和C++的混合编程。The principle根本原因在于C++和C中的函数的编译方式不同。如函数void foo(int n);被C编译器编译后原创 2012-05-12 14:08:01 · 830 阅读 · 0 评论 -
位图排序
利用位图对数据进行排序。前提:待排数据不能有重复,且要能估计出待排数据值的上界(越精确效率越高)时间复杂度:设待排数据值上界为M,待排数据量为N,则时间复杂度为O(2M+N)c++实现代码:#ifndef BITMAP_SORT_H#define BITMAP_SORT_H//sort the array by bitmap, it demand all elements o原创 2012-05-04 12:55:56 · 724 阅读 · 0 评论 -
大牛们的博客网址收藏
数据结构与算法http://blog.csdn.net/v_july_v/article/details/6543438http://www.cppblog.com/converse/archive/2009/10/31/99886.htmlwindows内存管理http://blog.chinaunix.net/uid-22562725-id-307986原创 2012-04-20 15:19:15 · 1251 阅读 · 0 评论 -
B树的原理与实现(C++)
B树的定义一棵B树T是具有如下性质的有根树(根为root[T]):1)每个结点x有如下域: a)n[x],当前存储在结点x中的关键字个数; b)n[x]个关键字本身,以非降序存放,因此key1 [x]≤key2[x]≤…≤keyn[x][x]; c)leaf[x],是一个布尔值,如果x是叶子结点的话,则它为TRUE,如果x为一个内结点,则它为FA原创 2012-04-20 13:12:33 · 16678 阅读 · 0 评论 -
Google C++编程风格指南
Google C++编程风格指南(一)背景Google的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于阅读和维护。本指南的目的是通过详细阐述在C++编码时要怎样写、不要怎样写来规避其复杂性。这些规则可在允许代码有效使用C++语言特性的同时使其易于管理。风格,也被视为可读转载 2012-04-19 16:27:56 · 1398 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。转载 2012-03-30 17:09:46 · 445 阅读 · 0 评论 -
C++面试宝典2011版
本文为转载文章,原文地址:http://blog.csdn.net/jingxuewang110/article/details/6789557 感谢原作者。1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new转载 2012-03-30 17:07:33 · 876 阅读 · 0 评论 -
C++运算符优先级
运算符优先级:域名解析符最高;然后是前置增量符/前置减量符/括号/数组下标/指针访问符;单目运算符比双目运算符高;算术双目比其它双目高;位运算高于关系运算;关系运算高于按位运算(&, |, ^);按位运算高于逻辑运算;三目的只有一个条件运算(?:),低于逻辑运算赋值运算仅比 , (顺序运算)高PrecedenceOperator原创 2012-03-21 18:42:52 · 648 阅读 · 0 评论 -
侯捷推荐的C++书单
●书籍是永远的良师益友过去十年中,有一件事最是奇特有趣:我於 1993 开始《无责任书评》专栏,介绍我所能够掌握的技术范围内的一些世界名着。这样的题材与文体,吸引了很多目光,也开创了某种先河。《无责任书评》夹杂对台湾电脑出版业的观点与评论,由於当时台湾电脑书的良窳程度极端不均(现在也是),初阶 滥而高阶贫血(现在也是),我以程序员的角度所给的评论显得尖锐不群。1998 年网际网路兴原创 2012-03-06 17:04:14 · 6356 阅读 · 1 评论 -
C++的沉迷与爱恋——侯捷
每年的 09/28 於我都是一个特殊的日子 -- 不只是因为教师节。今年很特殊地没有普天同庆,那麽我就写篇文章自己庆祝一下好了。我於今年七月发表了一本着作《多型与虚拟》和一本译作 ,获得很大的回响。这些作品都不是针对 C++ 的完全初学者所写,但从初阶到高阶为数众多的 C++ guy,热情地表达了他们对这些主题的喜悦。在许多来信中,我看到一些有趣的现象,也感受到一些值得整理下来的转载 2012-03-06 16:59:24 · 1452 阅读 · 0 评论 -
C++中的I/O stream类
ios_base:顶层基类basic_iostemplate >class basic_ios :public class ios_base {};basic_istream:两者虚拟派生自basic_iostemplate >class basic_istream :virtual public class basic_ios {};template >class b原创 2012-03-05 19:03:13 · 2126 阅读 · 1 评论 -
c++中追踪程序是否有内存泄漏
在main()函数中加上如下代码:void main(){ //用来追踪是否有内存泄漏 int tmpDbgFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); //得到当前的CrtDbgFlag状态 tmpDbgFlag |= _CRTDBG_LEAK_CHECK_DF; //打开内存泄漏自动检查开关 _Crt原创 2012-03-05 14:53:26 · 749 阅读 · 1 评论