c++
文章平均质量分 72
longzaitianya1989
这个作者很懒,什么都没留下…
展开
-
C语言贪吃蛇代码
源代码使用GCC编译器编译并运行于Linux,想在windows下运行需要修改少许字符输出语句。在自动控制snake上下了很大功夫,但是对防止进入自身封闭上做的很不好,而且没有使用另一线程实现玩家控制方向。为了方便编写,分为“snakeGame”、“sankeAI”、“sankeHead.h"三个文件。 “sankeHead.h" #include #include #includ转载 2012-10-27 21:59:36 · 1867 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include iostream>using namespace std;class CExample {private: int a;pub转载 2012-10-27 21:49:55 · 388 阅读 · 0 评论 -
“#if 0/#if 1 ... #endif”的作用
今看到一帖子,讨论“#if 0/#if 1 ... #endif”的作用,感觉不错,故拿来分享。原帖地址:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=2028608&bbs_page_no=1005&bbs_id=99991、先说“#if 0/#if 1 ... #endif”的作用,楼上诸位或多或少都说到了一点,但都没有说到关键的地转载 2012-11-07 21:25:55 · 518 阅读 · 0 评论 -
haartraining前将统一图片尺寸方法
总所周知,机器学习前要训练很多数据,一直感觉训练数据是个很神圣的东西,到底怎么训练呢?头脑一直有这么个疑问,但一直没时间去体验。因此最近在学adaboost算法,就要学会怎样训练出一个.xml文件了。方法是相同的,用过一次,以后的训练过程就差不多了。 只是打算进行简单的人脸数据训练,而是在网上下载了yale大学的人脸数据库,由耶鲁大学计算视觉与控制中心创建,包含15位志愿者的165张图转载 2012-11-12 15:52:07 · 1163 阅读 · 0 评论 -
opencv中facedetect例子浅析
人脸检测一种主流的方法就是类haar+adaboosting,opencv中也是用的这种方法。这种方法可以推广到刚性物体的检测,前提是要训练好级联分类器(比如说用类haar特征),一旦训练数据弄好了,直接调用opencv中的类CascadeClassifier,用它的几个简单的成员函数就可以完成检测功能。所以说用起来还是很简单的。下面就是用的opencv中自带的samples中的facedetec转载 2012-11-12 15:54:14 · 980 阅读 · 0 评论 -
haartraining生成.xml文件过程
1.准备正负样本: 在上一讲http://www.cnblogs.com/tornadomeet/archive/2012/03/27/2420088.html 中,我们已经收集到了训练所用的正样本。下面就开始收集负样本了,负样本要求是:不能包含人脸,且图片大小也不需要归一化到正样本尺寸,只需比正样本尺寸大或者相等即可。建议负样本用灰度图,加快训练速度,且负样本一定不能重复,要增大转载 2012-11-12 15:53:06 · 2133 阅读 · 1 评论 -
OpenCV 之 HaarTraining 算法剖析
OpenCV 之 HaarTraining 算法剖析1.引言 通过前段时间阅读 OpenCV 的 HaarTraining 代码,基本掌握了 HaarTraining 算法。现将其中的算法作一梳理,同时对 HaarTraining 的使用方法做一简要说明。 HaarTraining 算法总体上以 Friedman, J. H 等人的“Additive Logistic R转载 2012-11-12 15:49:40 · 3549 阅读 · 0 评论 -
算法之美——八皇后
算法之美——八皇后 众所周知的八皇后算法,用递归实现: [cpp] view plaincopyprint?#include #include using namespace std; #define NUM 8 int count=0; char cache[NUM][NUM] = {0}; int level转载 2012-11-13 10:31:27 · 567 阅读 · 0 评论 -
总结系列_2(vc,opencv,Qt等错误调试,续...)
转载至:http://www.cnblogs.com/tornadomeet/archive/2012/04/23/2467167.html 本文将总结一些在使用opencv+vs过程中碰到的error。 1.程序编译通过,运行时出现如下错误: 解决方法: a.可能是读取文件时出现错误,比如说读图片,视频等文件名字或路径弄错了。转载 2012-11-28 21:04:56 · 807 阅读 · 0 评论 -
“DDX_Control” : 不能将参数 3 从“int”转换为“CWnd &”
如果要使用DDX_Control,则m_ncount应为CEdit类型如果要使用int m_nCount; 请使用DDX_Text(pDX, IDC_COUNT, m_nCount);而不能使用DDX_Control(pDX, IDC_COUNT, m_nCount);原创 2012-11-30 22:08:49 · 2600 阅读 · 1 评论 -
二值形态学----腐蚀的原理
把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的a点组成的集合称做X被B腐蚀(Erosion)的结果。 用公式表示为:E(X)={a| Ba X}=X B,如图1所示。 图1 腐蚀的示意图图1中X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴影部分的点a,Ba 包含于X,所以X被B腐蚀的结果就是那个阴影部分。阴影转载 2012-11-22 09:31:54 · 2596 阅读 · 0 评论 -
二值形态学----膨胀的原理
膨胀(dilation)可以看做是腐蚀的对偶运算,其定义是:把结构元素B平移a后得到Ba,若Ba击中X,我们记下这个a点。所有满足上述条件的a点组成的集合称做X被B膨胀的结果。用公式表示为:D(X)={a | Ba↑X}=X B,如图1所示。图1中X是被处理的对象,B是结构元素,不难知道,对于任意一个在阴影部分的点a,Ba击中X,所以X被B膨胀的结果就是那个阴影部分。阴影部分包括X的所有范围转载 2012-11-22 09:32:49 · 5451 阅读 · 0 评论 -
VS2008中MFC单文档显示位图
1.创建一个MFC单文档应用程序Myvs.2.编写自己的CDib类下面是我自己编写的DIB类代码:CDib.h文件class CDib : public CObject{public: RGBQUAD* m_pRGB; BYTE* m_pData; UINT m_numberOfColors; BOOL m_valid; BITM转载 2012-12-05 21:21:27 · 1332 阅读 · 0 评论 -
vc6.0一个workspace包含多个项目
转载至:http://blog.csdn.net/passball/article/details/5805507 首先vc一般新建一个项目(workspace)都是一个project, 如果需要多个工程: 方法1:新建一个工程,然后选中“add to current workspace”即可。 方法2:已有工程,可以通过“project”菜单-》“insert project转载 2013-01-24 09:47:05 · 723 阅读 · 0 评论 -
如何给MFC对话框添加背景图片
1、添加背景图片到“Bitmap”资源里。方法为“插入——资源”,如果还没有Bitmap,则新建一个Bitmap,否则选择资源 类型为“Bitmap”后“引入”想要插入的背景图片,我加入的背景图片如图1,加入过程如图2。 图1 图2 说明:引入的图片可以插入256色、16位色或更高色的图转载 2013-06-17 12:33:19 · 14353 阅读 · 3 评论 -
VS2010解决对话框设置背景图片和文字重叠问题
内容:MFC基于对话框的项目设置背景图片以及解决设置对话框背景之后导致文字重叠(叠影)问题。简介:被严密封装的MFC应用程序界面开发是一个很大的问题。先从简单的对话框背景设置来说。可以设置BITMAP图像或者其他格式的图片做为背景。MFC内置了CImage类来加载和使用各种类型的图片。简单使用方式如下:在Rect大小的区域用Image来绘制背景。(也可以使用bkImage.转载 2013-06-17 12:44:02 · 4734 阅读 · 0 评论 -
在C中实现矩阵运算
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh环境:主机:XP开发环境:mingw功能:在C++中实现矩阵运算说明:将这篇文章(http://blog.csdn.net/jdh99/article/details/7360091)中在C++下实现的矩阵运算移转载 2013-09-13 09:13:29 · 1692 阅读 · 0 评论 -
MFC中屏幕刷新闪烁问题解决方法总结
在MFC中经常遇到屏幕刷新的问题,下面是几种解决方法。 1,刷新整个程序区域,有明显的闪烁情况 Invalidate( TRUE ); UpdateWindow(); 2,刷新指定区域,该区域有闪烁情况,不过比上一种方法要好多了。 InvalidateRect( &m_rect, TRUE 0); UpdateWindow(); 3,还原创 2014-01-14 16:54:20 · 24010 阅读 · 1 评论 -
C++运算重载
快速认识运算符重载:class C{ int i;public: C(int iTmp);};C::C(int iTmp){ i = iTmp;}int _tmain(int argc, _TCHAR* argv[]){ C c1(1),c2(2),c3(3); //c3 = c1 + c2转载 2012-10-27 22:28:34 · 917 阅读 · 0 评论 -
二叉树非递归遍历
最近一段时间学习数据结构,关于二叉树的遍历,递归遍历很简单,非递归遍历方法不一这里分析一下三种非递归遍历方法的实现首先定义二叉树结点数据结构:typedef struct btnode *btlinkstruct btnode{ TreeItem element; btlink left; //左子树 btlink right; //右子树转载 2012-10-27 22:17:20 · 605 阅读 · 0 评论 -
C++ template 学习笔记
技巧性基础知识这章中主要讲述了一些与模板实际应用密切相关的一些更加深入的基础知识。主要包括: 1. 关键字 typename 2.使用this-> 3.成员模板 4.模板的模板参数 5.零初始化 6.字符串作为函数模板的实参 1. 关键字typename 在C++中,引入typename是为了说明:模板内部的标转载 2012-10-27 22:18:13 · 565 阅读 · 0 评论 -
C/C++从入门到精通(入门、进阶、精通)
今天在网上偶然看见许多大师在讨论如何学习C/C++,大牛们推荐了一些书籍,个人觉得很不错,怕以后想学的时候找起来费劲,所以给整过来了。(本文转自大牛、大师们)我的个人的拙见可以这样学C++:第一步:首先入门可以从 国内出版的 教材入门 如 潭浩强的> 清华大学出版的>等 能了解一些基本语法 会编写些简单的程序 第二步:看>我绝对对赞同这是本好书,面也广.>这本书转载 2012-10-29 18:58:46 · 3426 阅读 · 1 评论 -
如何计算程序的运行时间
1.这个是windows里面常用来计算程序运行时间的函数;DWORD dwStart = GetTickCount();//这里运行你的程序代码DWORD dwEnd = GetTickCount();则(dwEnd-dwStart)就是你的程序运行时间, 以毫秒为单位这个函数只精确到55ms,1个tick就是55ms。#include #include u转载 2012-11-03 18:54:09 · 937 阅读 · 0 评论 -
在C++中用栈实现进制之间的转换
众所周知,用栈可以消除递归,见下例:#includeusing namespace std;#define STACK_INIT_SIZE 100struct Stack{int*base;int*top;int stacksize;};void conversion();int InitStack(Stack*S);int Push(Stack*S,int转载 2012-10-25 21:42:04 · 4879 阅读 · 0 评论 -
用栈实现各种进制转换
//可以实现各种进制转换----by yifeng#include #include #include #define STACK_INIT_SIZE 12#define STACK_INCREMENT 10typedef int ElemType;struct stack{ ElemType *base; ElemType *top; int原创 2012-10-26 09:13:53 · 1166 阅读 · 0 评论 -
C语言函数realloc
C语言函数realloc 原型:extern void *realloc(void *mem_address, unsigned int newsize); 语法:指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小一定要大于原来的大小不然的话会导致数据丢失! 头文件:#include stdlib.h>转载 2012-10-26 09:20:11 · 879 阅读 · 0 评论 -
递归实现十进制到n[2, 10]进制转换
#include "stdafx.h"#include #include // Change decimal n to r [2,10] scale numbervoid dToX( int n ,int r ) { if(n >= r) { dToX(n/r, r); } printf("%d", n%r); }void main() { in转载 2012-10-25 21:36:20 · 1140 阅读 · 0 评论 -
Map用法详解(二)
以上三种用法,虽然都可以实现数据的插入,但是它们是有区别的,当然了第一种和第二种在效果上是完成一样的,用insert函数插入数据,在数据的插入上涉及到集合的唯一性这个概念,即当map中有这个关键字时,insert操作是插入数据不了的,但是用数组方式就不同了,它可以覆盖以前该关键字对应的值,用程序说明 mapStudent.insert(mapint, string>::value_转载 2012-11-05 15:20:08 · 475 阅读 · 0 评论 -
Map用法详解(四)
6. 数据的清空与判空 清空map中的数据可以用clear()函数,判定map中是否有数据可以用empty()函数,它返回true则说明是空map 7.数据的删除 这里要用到erase函数,它有三个重载了的函数,下面在例子中详细说明它们的用法 #include#include#includeusing name转载 2012-11-05 15:21:49 · 504 阅读 · 0 评论 -
八皇后问题
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当 n = 1 或 n >=4 时问题有解。 #include #include转载 2012-11-05 15:23:52 · 449 阅读 · 0 评论 -
代码调试技巧
调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单open。 1 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般转载 2012-10-27 09:39:52 · 858 阅读 · 0 评论 -
一道c++面试题解答
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 /转载 2012-10-26 16:32:00 · 429 阅读 · 0 评论 -
利用链表计算多项式的相加
// list1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespace std;//typedef ElemType int;typedef struct {float coef; //系数int expn; //指数}term,ElemT转载 2012-10-27 09:53:11 · 477 阅读 · 0 评论 -
c++递归实现进制转换
#include int conservation[100]; //保存结果的数组 [cpp] view plaincopyprint? int number; //数组中保存结果实际的位数 int change(int base,int jinzhi){//base为基数,jinzhi为想要转化的进制 int a; int b; a=base%jinzhi原创 2012-10-27 09:52:04 · 2628 阅读 · 1 评论 -
C++学习一些小结
一、构造和析构函数C++在幕后为你写的的函数:一个拷贝构造函数,一个赋值运算符,一个析构函数,一对取址运算符。另外,如果你没有声明任何构造函数,它也将为你声明一个缺省构造函数。所有这些函数都是公有的。换句话说,如果你这么写:class Empty{};和你这么写是一样的:class Empty {public: Empty();转载 2012-10-27 22:16:27 · 332 阅读 · 0 评论 -
Map用法详解(三)
4.数据的遍历 这里也提供三种方法,对map进行遍历 第一种:应用前向迭代器,上面举例程序中到处都是了,略过不表 第二种:应用反相迭代器,下面举例说明,要体会效果,请自个动手运行程序 #include#include#includeusing namespace std; int ma转载 2012-11-05 15:20:52 · 469 阅读 · 0 评论 -
C语言中的文件格式化读写函数:fprintf和fscanf
学过C语言的,对printf和scanf函数肯定不会陌生(如果不知道,那说明你就没学过C语言),这两个函数分别是格式化输出和格式化输入函数,按照指定的格式输入数据或者在屏幕上输出数据。 fprintf函数和fscanf函数和printf和scanf相比,就是多了个f前缀,这个f当然就是指的file,也就是文件了,后两者是操作的对象是终端设备,前者则是针对磁盘文件的操作,因此fprintf函数转载 2012-10-27 22:14:15 · 1872 阅读 · 0 评论 -
C++中的istringstream 的用法
istringstream是一个比较有用的c++的输入输出控制类。C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含这个头文件。istringstream类用于执行C++风格的串流的输入操作。ostringstream类用于执行C风格的串流的输出操作。strstream类同时可以支持C风格的串流的输原创 2016-10-24 11:02:40 · 99729 阅读 · 5 评论