C++
文章平均质量分 75
acorld
非偷不可学也
展开
-
C / C++算法学习笔记(2)-二叉查找树
本文原始地址:C / C++算法学习笔记(2)-二叉查找树查找操作若根结点的关键字值等于查找的关键字,成功。否则,若小于根结点的关键字值,递归查左子树。若大于根结点的关键字值,递归查右子树。若子树为空,查找不成功。/* //二叉树查找算法 //T 二叉树 //x 要查找的值 */BiTree BSTSearch(BiTree T,int原创 2013-05-06 17:49:54 · 1837 阅读 · 0 评论 -
C / C++算法学习笔记(3)-冒泡法
原始地址:C / C++算法学习笔记(3)-冒泡法 冒泡法: 这是最原始,也是众所周知的最慢的算法了。它的名字的由来因为它的工作看来象是冒泡: #include void BubbleSort(int* pData,int Count){ int iTemp; for(int i=1;i<Count;i++)原创 2013-06-01 09:37:10 · 2278 阅读 · 0 评论 -
C / C++算法学习笔记(4)-交换法
原始地址:C / C++算法学习笔记(4)-交换法 交换法:交换法的程序最清晰简单,每次用当前的元素一一的同其后的元素比较并交换。#include void ExchangeSort(int* pData,int Count){ int iTemp; for(int i=0;i<Count-1;i++) {原创 2013-06-01 09:52:52 · 2038 阅读 · 0 评论 -
C / C++算法学习笔记(5)-选择法
原始地址:C / C++算法学习笔记(5)-选择法 选择法: 现在我们终于可以看到一点希望:选择法,这种方法提高了一点性能(某些情况下)这种方法类似我们人为的排序习惯: 从数据中选择最小的同第一个值交换,在从省下的部分中选择最小的与第二个交换,这样往复下去。#include void SelectSort(int* pData,int Coun原创 2013-06-03 22:33:31 · 2520 阅读 · 2 评论 -
C / C++算法学习笔记(6)-插入法
原始地址:C / C++算法学习笔记(6)-插入法 插入法:插入法较为复杂,它的基本工作原理是抽出牌,在前面的牌中寻找相应的位置插入,然后继续下一张。 #include void InsertSort(int* pData,int Count){ int iTemp; int iPos; for(int i=1;i<Co原创 2013-06-03 22:34:00 · 2511 阅读 · 0 评论 -
函数式编程初探
诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F#等等。目前最当红的Python、Ruby、Javascript,对函数式编程的支持都很强,就连老牌的面向对象的Java、面向过程的PHP,都忙不迭地加入对匿名函数的支持。转载 2013-06-23 09:41:25 · 995 阅读 · 1 评论 -
二进制、八进制、十进制、十六进制之间转换
一、 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换原创 2013-06-23 09:47:20 · 2274 阅读 · 1 评论 -
C / C++算法学习笔记(7)-双向冒泡
原始地址:双向冒泡通常的冒泡是单向的,而这里是双向的,也就是说还要进行反向的工作。代码看起来复杂,仔细理一下就明白了,是一个来回震荡的方式。写这段代码的作者认为这样可以在冒泡的基础上减少一些交换(我不这么认为,也许我错了)。反正我认为这是一段有趣的代码,值得一看。#include void Bubble2Sort(int* pData,int Count){原创 2013-06-23 09:50:56 · 2468 阅读 · 0 评论 -
C++中#和##的特殊使用
1.用#号将输入的内容转换为字符串。 用##号将两个参数合并。 #include using namespace std; //将输入的内容转换成字符串 #define AllToString(str) #str //将两个参数粘在一起 #define AllToParter(parm1,parm2) parm1##parm2 int main()原创 2013-06-28 17:58:34 · 1803 阅读 · 2 评论 -
c++ 万能指针-void
void指针指针有两个属性:指向变量/对象的地址和长度但是指针只存储地址,长度则取决于指针的类型 编译器根据指针的类型从指针指向的地址向后寻址 指针类型不同则寻址范围也不同,比如: int*从指定地址向后寻找4字节作为变量的存储单元 double*从指定地址向后寻找8字节作为变量的存储单元 1.void指针是一种特别的指针 void *vp //说它转载 2013-08-01 11:56:18 · 3609 阅读 · 1 评论 -
C / C++算法学习笔记(8)-SHELL排序
shell排序原创 2013-09-09 09:17:21 · 2879 阅读 · 0 评论 -
C++ 指针 (2)-指针入门
原始地址:C++ 指针 (2)-指针入门 指针的类型 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。例如: (1)int* ptr; //指针的类型是int* (2)char* ptr; //指针的类型是char* (3)int** ptr; //原创 2013-05-16 15:54:17 · 1446 阅读 · 0 评论 -
C++ 指针 (1)-基本常识
原始地址:C++ 指针 (1)-基本常识 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针,需要搞清指针的四方面的内容: 指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。 在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址全都是32原创 2013-05-16 15:54:59 · 1765 阅读 · 1 评论 -
C++ 函数类型
构造函数:拷贝构造函数就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量。如#include using namespace std;class CExample {private: int a;public: //构造函数原创 2013-05-13 09:18:48 · 4533 阅读 · 0 评论 -
C语言的const关键字与指针搭配使用
C语言的const关键字与指针搭配使用,const是C语言中保留的一个关键字,它用来限定一个变量是只读的,即不可变的。程序中使用const可以在一定程度上提高程序的健壮性,但是程序中使用过多的const,可能在对代码的阅读时增加一定的难度。(1)用const修饰一般变量注意在C语言中,用const修饰的变量必须在声明时进行初始化(用来修饰函数的形参除外);如:转载 2013-05-14 17:24:52 · 3157 阅读 · 1 评论 -
C++ 重要修饰符
auto对应自动生存周期auto修饰符只能用在函数内的对象声明中,即仅在语句块内使用。声明中有auto修饰符的对象具有自动生存周期。它们仅存在于被定义的当前执行代码块中,即局部变量在进入模块时生成,在退出模块时消亡。定义局部变量的最常见的代码块是函数。 语言中包括了关键字auto,它可用于定义局部变量。但自从所有的非全局变量的缺省值假定为auto以来,aut原创 2013-05-15 08:46:32 · 2163 阅读 · 2 评论 -
C++ 指针 (3)-算术运算
指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的,以字节为单位。char a[20];int *ptr=(int *)a;//强制类型转换并不会改变a的类型ptr++; 在上例中,指针ptr的类型是int*,它指向的类型是int,它被初始化为指向整型变量a。接下来的第3句中,指针ptr被加了1,编译器是这样处理的:它把指针ptr的原创 2013-05-30 16:09:01 · 1551 阅读 · 2 评论 -
C/C++ 内存对齐
一、什么是对齐,以及为什么要对齐: 1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只原创 2013-06-28 17:56:21 · 2167 阅读 · 4 评论