随笔分类 -  C/C++

摘要:数据挖掘课上面老师介绍了下决策树ID3算法,我抽空余时间把这个算法用C++实现了一遍。决策树算法是非常常用的分类算法,是逼近离散目标函数的方法,学习得到的函数以决策树的形式表示。其基本思路是不断选取产生信息增益最大的属性来划分样例集和,构造决策树。信息增益定义为结点与其子结点的信息熵之差。信息熵是香农提出的,用于描述信息不纯度(不稳定性),其计算公式是Pi为子集合中不同性(而二元分类即正样例和负样例)的样例的比例。这样信息收益可以定义为样本按照某属性划分时造成熵减少的期望,可以区分训练样本中正负样本的能力,其计算公司是我实现该算法针对的样例集合如下该表记录了在不同气候条件下是否去打球的情况,要 阅读全文
posted @ 2012-03-05 19:04 yangleo 阅读(1261) 评论(0) 推荐(0)
摘要:STLContianers容器精辟总结一、序列容器(Sequence containers)1、 Vector :一种序列容器,实现为动态数组,元素保存在连续的存储位置,支持迭代器和索引访问。与数组不同的是,可以自动分配存储空间,容易改变容器大小。当需要频繁从序列尾部增加或者删除数据时,可以表现出高效的性能。size记录了当前容器大小,capacity记录了当前已分配的最大空间。2、 List:一种序列容器,实现为双向链表。与其他容器如vector和deques相比,list在容器内部插入、删除元素操作中性能更好。主要缺点是不支持元素直接按索引访问,需要迭代遍历。3、 Deque:全称为dou 阅读全文
posted @ 2012-02-26 19:06 yangleo 阅读(280) 评论(0) 推荐(0)
摘要:C++虚函数与JAVA中抽象函数比较1:java中没有虚函数的概念,但是有抽象函数的概念,用abstract关键字表示,java中抽象函数必须在抽象类中,而且抽象 函数不能有函数体,抽象类不能被实例化,只能由其子类实现抽象函数,如果某个抽象类的子类仍是抽象类,那么该子类不需要实现其父类的抽象函数。2:C++中的有虚函数的概念,用virtual 关键字来表示,每个类都会有一个虚函数表,该虚函数表首先会从父类中继承得到父类的虚函数表, 如果子类中重写了父类的虚函数(不管重写后的函数是否为虚函数),要调用哪个虚函数,是根据当前实际的对象来判断的(不管指针所属类型是否为当前类,有可 能是父类型),指针 阅读全文
posted @ 2012-01-03 01:54 yangleo 阅读(784) 评论(0) 推荐(0)
摘要:const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令**************常量必须被初始化*************************cons的作用(1)可以定义const常量例如:constintMax=100;intArray[Max];(2)便于进行类型检查例如:voidf(constinti){.........}编译器就会知道i是一个常量,不允许修改;(3)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。还是上面的例子,如果在函数体内修改了i,编译器就会报错;例如:voidf(constinti){i=10;//error!}(5)为函 阅读全文
posted @ 2011-12-26 10:54 yangleo 阅读(573) 评论(0) 推荐(0)
摘要:在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。 那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编译器对64位整数的扩展有所不同。基于ACM的需要,下面仅介绍VC6.0与g++编译器的扩展。 VC的64位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2^63)与[.. 阅读全文
posted @ 2010-12-17 23:11 yangleo 阅读(448) 评论(0) 推荐(0)
摘要:之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用=进行赋值操作,==进行比较,+做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。首先,为了在我们的程序中使用string类型,我们必须包含头文件<string>。如下:#include<string>//注意这里不是string.hstring.h是C字符串头文件1.声明一个C++字符串声明一个字符串变量很简单:stringS 阅读全文
posted @ 2010-11-26 16:07 yangleo 阅读(440) 评论(0) 推荐(0)
摘要:多源最短路径Floyd算法邻接矩阵形式C++实现,输入点数、边数和起点、终点、权值,输出最短路径及权值#include <iostream>#define MAX_VEX 305#define MAX_WEI 1000005using namespace std;int A[MAX_VEX][MAX_VEX],Path[MAX_VEX][MAX_VEX];//输出最短路径void prn_pass(int j , int k){ if (Path[j][k]!=-1) { prn_pass(j,Path[j][k]); cout<<"-->"& 阅读全文
posted @ 2010-11-24 22:00 yangleo 阅读(536) 评论(0) 推荐(0)