自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

辉仔 の专栏

sharing changes the world

  • 博客(71)
  • 资源 (3)
  • 收藏
  • 关注

原创 c++ string类实现

#include#include#include#includeusing namespace std;class CMyString{ friend std::ostream& operator<<( std::ostream& os, const CMyString& str); private: char* m_

2012-04-22 13:23:49 13086 4

原创 多重集合的排列和组合问题

一、先来回顾一下无重复元素的排列组合定义排列,英文名为Permutation,是指从某元素集合中取出指定个数的元素进行排序组合,英文名为Combination,是指从某元素集合中仅仅取出指定个数的元素,不考虑排序从有n个不同元素的集合任取r个元素的排列方式有:P(n, r) = n*(n-1)*...*(n-r+1) = n! / (n-r)!,特别地 P(n,n) =

2012-04-17 16:18:12 22884 1

转载 大端和小端问题

一、大小端          在现代“冯.诺依曼体系结构”计算机中,它的数制都是采用二进制来存储,并且是以8位,一个字节为单位,产生内存地址系统。数据在内存中有如下三种存在方式:           1、从静态存储区分配:此时的内存在程序编译的时候已经分配好,并且在程序的整个运行期间都存在。全局变量,static变量等在此存储。           2、在栈区分配:在程序的相关代码执行

2012-03-24 11:03:32 1304

原创 递归输出全排列和全组合

// 输出全排列// author: kennie#includetemplatevoid swap(T *, T *);templatevoid printArr(T [], int len);templatevoid permutation(T [], int, int, int);templatevoid swap( T *a, T *b ){ T

2012-03-21 13:24:06 2128

原创 DC分治法求数组最大最小值

#includevoid dcMaxMin( int [], int, int, int *, int * );void dcMaxMin( int arr[], int low, int high, int *tmpMax, int *tmpMin ){ if ( high - low <= 1)// 最多俩元素 { if

2012-03-21 09:05:59 1512

原创 算法导论P151 二叉查找树

// 头文件 BSTree.h#ifndef _H_BSTREE_H_#define _H_BSTREE_H_#include #include #include #include using namespace std;typedef struct BSTreeNode{ struct BSTreeNode* m_pLeft

2011-06-29 10:05:00 742

原创 算法导论P17 归并排序

#include #include #include #include #include // 输出数组元素void printArr(int* arr, int len){ for (int i = 0; i < len; i++) { printf("%d ", *(arr+i)); }}// 随机生成数组数据void

2011-06-25 09:11:00 662

原创 算法导论P10 简单的插入排序

#include #include #include #include #include // 输出数组元素void printArr(int* arr, int len){ for (int i = 0; i < len; i++) { printf("%d ", *(arr+i)); }}// 随机生成数组数据void

2011-06-24 20:41:00 651

原创 算法导论P99 计数排序

#include #include #include #include #include // 输出数组元素void printArr(int* arr, int len){ for (int i = 0; i < len; i++) { printf("%d ", *(arr+i)); }}// 随机生成数组数据void ra

2011-06-24 19:21:00 1118

原创 算法导论P85 快速排序

#include #include #include #include using namespace std;void swap(int& a, int& b){ int tmp = a; a = b; b = tmp;}void printArr(int* arr, int len){ for (int i = 0; i

2011-06-24 16:09:00 691

原创 算法导论P73堆排序

// HeapSort.cpp : Defines the entry point for the console application.//#include "stdafx.h"void maxHeapify(int* arr, int len, int index) // 将索引为index的节点递归保持最大堆性质{ if (index len-1) // 超过

2011-06-24 10:03:00 764

原创 整数拆分为连续自然数之和

2011-06-14 17:29:10 from编程之美2.21问题描述:将一个正整数,拆分成连续的自然数之和,输出所有可能的情况例如: 3 = 1+2        10 = 1+2+3+4        16 = 5+6+7        ... 问题求解: 连续的自然数之和让我们想到了等差数列求和公式: 其中Sum为要分解的正整数,

2011-06-14 18:35:00 7492 1

原创 vc double buffer 无闪烁刷新

CvvImage cimg; cimg.CopyOf(m_iplRGB, 1); // 复制后为单通道 // 图像居中显示 CRect clientRect; GetClientRect(&clientRect); CPoint center; center = clientRect.CenterPoint(); int offsetX = center.x - sourceWidth / 2; int offsetY = center.y - sou

2011-05-25 17:27:00 1224

原创 子数组和最大

#include "stdafx.h"int max(int x, int y){ return (x > y) ? x : y;}int maxSum(int * arr, int len){ int retMaxSum = 0; int* Start = new int[len]; int* All = new int[len]; // Start[i] 表示arr中,前i个元素中,包含第i个元素且和最大的连续子数组 // All[i] 表示arr

2011-05-25 16:50:00 542

原创 LCS最长公共子序列求解

<br />// LCS.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <list>#include <vector>#include <string>using namespace std;int calcLCS(vector<char> X, vector<char> Y, int ** L

2011-05-25 14:57:00 597

原创 关于 new int() 和 new int[]

<br />#define LEN 100int * newArray1 = new int(LEN); // firstint* newArray2 = new int[LEN]; // second<br /> <br />一个看似简单的问题把我差点搞死了,<br />童鞋们请注意了,<br />在//first这行代码中,newArray1指向的是内存中int = 100的一个数的地址<br />而在//second这行代码中,newArray2指向的是一块长度为100的内存块

2011-05-20 17:31:00 3483

原创 matlab GUI toolbar

<br />最近在做一个matlab GUI的程序时,遇到一个问题:想要对figure里的图像进行放大缩小以及拖动操作,忙活了半天自己写了放大缩小的代码,但是拖动不知道如何搞,最后发现imscrollpanel 、imoverview和 imoverviewpanel几个函数的功能还不错,但效果上还有一些不足,在跟队友肥哥的讨论中发现原来matlab GUI本身就自带了toolbar,里面常用的放大、缩小、拖动和旋转等都已实现,我们需要做的只是简单地添加这些按钮就ok了。<br /> <br />具体操作如

2011-05-06 09:51:00 6758 3

原创 将字符串按照指定方式就地翻转

<br />例如 将www.google.com.hk 翻转为 hk.com.google.www<br /> <br />// Reverse.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdio.h>void swapPtr(char* first, char* second){ //交换的是指针所指内存的值,指针并没有交换 char

2011-05-03 20:00:00 831

转载 Catalan数

什么是Catalan数说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就叫做第n个Catalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, …咋看之下没什么特别的,但是Catalan数却是许多计数问题的最终形式。Catalan数的一些性质Catalan数的基本

2011-01-04 17:55:00 623

转载 C风格字符串[C++]

<br />1.字符串字面值<br />  字符串字面值是一串常量字符,字符串字面值常量用双引号括起来的零个或多个字符表示,为兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符<br />  "Hello World!" //simple string literal<br />  ""             //empty string literal<br />  "/nCC/toptions/tfile.[cC]/n"  //string literal usi

2011-01-04 11:12:00 694

原创 在数组中查找两个数,使得它们的和正好是输入的那个数字

题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。先有两种解法解法一:假设给定数组元素为m个src[m],给定的和为sum,我们首先开辟m个数组空间tmp[m],初始值都为0,然后从头到尾遍历给定,对于src[i],我们查找tmp[m-src[i]]是否为1,如果为1,输出两个数即可,否则将t

2010-12-31 10:40:00 2719

原创 matcom进行matlab与c++混合编程

//先写一个简单的matlabhello.mfunction hello() fprintf('hello,world/n');end在matcom中选择File->Run将会生成matlabhello.h matlabhello.cpp matlabhello.lib matlabhello.dll等//生成的matlabhello.h如下#ifndef __matlabhello_h#define __matlabhello_h#include "matlib.h"Mm

2010-12-30 10:07:00 2058 1

原创 一串首尾相连的珠子(m个),有N种颜色(N<=10),取出其中一段,要求包含所有N中颜色,并使长度最短

#include #include #include #include using namespace std;void createRandArr(int *, int, int);void printfRandArr(int* , int);int countMaxUnique(int* , int);int getMaxCoverLen(int* , int, int);//生成随机数组void createRandArr(int* randArr, int len, int top=10){sran

2010-12-03 16:08:00 4020

原创 设计一个栈结构,满足一下条件:min,push,pop操作的时间复杂度为O(1)

//stackAPI.h#ifndef _STACK_API_H#define _STACK_API_H#define  SIZE 100#include #include void createRandArr(int *randArr, int len);templateclass myStack{private:T srcData[size];T maxData[size];T minData[size];int topIndex;int maxIndex;int minIndex;public:myS

2010-12-02 20:53:00 3853

原创 二元查找树转变成排序的双向链表

//TreeAPI.h#ifndef _TREE_API_H_#define _TREE_API_H_typedef struct _BSTreeNode{ int m_nValue; struct _BSTreeNode* m_pLeft; struct _BSTreeNode* m_pRight;}BSTreeNode;void createRandArr(int *randArr, int len);bool insertBST(BSTreeNode* &root, int data);void di

2010-12-02 18:22:00 620

原创 endnote & word

<br /><br />一、endnote:<br />问题描述:<br />使用endnote插入修改注释时,在打开word2003时会弹出警告:制定的word库正在使用,不能卸载!然后endnote的插入功能失效!<br />解决方法:<br />工具->模板和加载项->模板->公用模板及加载项 删除Endnote web cwyw.dot,然后点击右边的添加按钮,选择<br />C:/Documents and Settings/Administrator/Application Data/EndNo

2010-12-02 09:47:00 1178

转载 关于OpenCV1.0的静态编译问题

<br />OpenCV现在的版本是1.0,已经很长时间没有更新了,不知道下个版本什么时候放出。其实,OpenCV的.dll文件并不多,如果想脱离这些.dll,使用静态库的话,那么一个小小的程序也差不多近2MB了。不过为了演示及发布方便,编译为静态库也算是一种需要吧。想编译成静态库,就需要了解一个知识:运行库(Runtime Library)。运行库是最基本的库,配合C++的语法及操作系统实现了一些基本的功能,如内存操作(new/delete等)等。可以说运行库是任何程序,库的基础。在VC(2005以上)中

2010-12-02 09:45:00 645

转载 #pragma pack(n)内存对齐方式

<br /><br />在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。<br /> <br />例如,下面的结构各成员空间分配情况:<br />struct test<br />{<br />     char x1;<br

2010-12-02 09:43:00 716

原创 MFC之头文件相互包含问题及解决方法

<br /><br />问题一:<br />error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int<br /><br />原因分析:<br />1. (此情况经常出现在大型工程项目中)如果存在两个类的头文件a.h和b.h,在a.h中有这样的语句:#include "b.h",在b.h文件中有这样的语句:#include "a.h"且在一个类中有另一个类的对象时,那么就会出现这样的错误。<br />2. 没有包含要定义的类的头文件。<br />3.项目中少加了宏定义,

2010-12-02 09:42:00 5766

原创 openCV 与MFC交互

//首先安装openCV1.0//配置目录//配置项目属性,LINK标签要加入cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib//简单显示一幅图的源码#include "cv.h"#include "highgui.h"int main(int argc, char* argv[]){ IplImage* pImg; pImg = cvLoadImage("D://img//y8.jpg", 1); // 注意是双斜杠 cvNamedWindo

2010-12-02 09:41:00 1402

原创 函数指针的总结

<br /><br />今天,突然大发奇想,深入的思考了函数指针,对其总结如下:望对初学者有所帮助<br />    //声明函数指针的两种方式<br />    int (*pfunction1)(int,double);   //声明返回int类型,参数为int和double的函数指针,函数指针是有类型的<br /><br />    typedef  int (*PFUNCTION1)(int,double);   //这样一来PFUNCTION1就成为了某种函数指针(参数为int和d

2010-12-02 09:37:00 880

彻底搞定C指针 pdf文件

《彻底搞定C指针》是互联网上下载次数最多的针对C指针问题的中文资源之一。现在,经由修订者的重新修订、编辑与排版,本书的《完全版·修订增补版》全新登场。新版本中的技术用语更加清楚严谨,行文的结构层次更加分明,例子中的程序代码均通过编译以测试其精准性。修订者希望这份新的成果能够令各位读者在C编程方面获得更多的益处,同时也期待着读者们宝贵的反馈信息。

2011-01-04

matcom+4.5

mathtools公式提供的工具,用于matlab 和c++的混合编程,它是个第三方控件,很小(8M多),使用该工具可以将m脚本文件和m函数转化成相同功能的C\C++文件,相比其它方法使用matcom具有如下优点: 转换过程简单(由matcom工具自动实现),容易实现; 可以方便的生成动态链接库文件(dll)和可执行文件(exe); 不仅可以转换独立的脚本文件,也可以转换嵌套脚本文件; 设置环境后,可以使用Matlab的工具箱函数;

2010-12-30

opencv camshift

关于camshift 算法的应用和相关理论基础,有关色彩空间的描述

2010-05-05

空空如也

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

TA关注的人

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