自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (6)
  • 收藏
  • 关注

转载 C++虚析构函数

C++  虚析构函数 类型需要虚析构函数的另外一个特征 是该类型具有指针成员或引用成员。如果有指针成员和引用成员,则该类型通常需要实现析构函数以及拷贝操作。 通常,一个实现了析构函数的类型同时也需要实现拷贝构造函数与拷贝复制函数。 作为一个经验法则:如果你有一个带有虚函数功能的类,则它需要一个虚析构函数,原因如下: 1. 如果一个类有虚函数功能,它经常作

2013-10-19 22:35:30 703

转载 走楼梯问题

声明:题目来自: http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx  JULY整理了100道微软等公司的面试题目,我想先不看答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126406.aspx 自己先做一遍。 27. 跳台阶问题题目:一个台阶总共

2013-10-10 10:39:12 3102

转载 assert

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#i

2013-10-09 10:58:39 583

转载 c++动态联编与静态联编

摘要】:本文阐述了静态联编和动态联编的概念和区别,通过具体实例分析了实现动态联编的条件,指出了虚函数是实现动态联编的基础。【关键词】:静态联编;动态联编;虚函数在C++中,联编是指一个计算机程序的不同部分彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。    1.静态联编静态联编是指联编工作在编译阶段完成的,这种联编过程是在程序运

2013-09-26 21:39:19 1108

转载 C++虚函数和多态学习

1、什么是虚函数和多态虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。多态指同一个方法根据其所属的不同对象可以有不同的行为(根据自己理解,不知这么说是否严谨)。举个例子说明虚函数、多态、早绑定和晚绑定:

2013-09-26 20:53:36 706

转载 传值 传指针 传引用

传值 :int func(User u); 传指针: int func(User* u); 传引用: int func(User& u); 传值是传参数最常见的方法,相当简单,是C++的基础传参方法。如果参数是整形、字符等基础类型,用传值的方法是最快的,也是最简单的。它的缺陷是对于一些很大的对象,比如上面定义的User对象,使用传值方法时,内存开销比较大,会重新创建一个User对象

2013-09-26 20:35:08 692

转载 C++ 类继承内存布局

C++继承分为两种,普通继承和虚拟继承(virtual)。具体的继承又根据父类中的函数是否virtual而不同。下面就单继承分为几种情况阐述:1.普通继承+父类无virtual函数若子类没有新定义virtual函数 此时子类的布局是 : 由低地址->高地址 为父类的元素(没有vptr),子类的元素(没有vptr).若子类有新定义virtual函数 此时子类的布局是 : 由低地址->

2013-09-26 20:32:30 1024

转载 C++虚函数的实现机制

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的

2013-09-26 20:32:04 629

转载 c++对象和内存

1 类、对象和内存1.1 通过内存看对象我们先回顾一下类和对象的定义,类是定义同一类所有实例变量和方法的蓝图或原型;对象是类的实例化。从内存的角度可以对这两个定义这样理解,类刻画了实例的内存布局,确定实例中每个数据成员在一块连续内存中的位置、大小以及对内存的解读方式;对象就是系统根据类刻画的内存布局去分配的内存。除了实例变量和方法,类也可以定义类变量和类方法,这是我们通常所说的静态

2013-09-26 20:28:52 622

转载 函数传递的参数是原参数的副本

函数的传递的参数是原参数的副本   使用C语言编程,不可能不用到函数,但是函数的参数传递,我们是否真的清楚了呢。本文主要介绍C语言中函数传递的参数。。   函数的参数通常分为两种,普通变量,指针变量。这些参数,将会被函数体调用,当让,也可以传入一些永远不被函数调用的参数,就像你声明了一些变量,却永远不用一样,在语法上是没有问题的。   那么,函数体内调用的传递过来的参数,与原来的参数有

2013-09-26 20:28:49 660

转载 C++类变量初始化

C++类变量初始化C++为中类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员2.进入构造函数后在构造函数中执行一般计算C++类中变量的初始化:1.初始化列表:CSomeClass::CSomeClass() : x(0), y(1){},const常量定义必须初始化,且必须使用初始化列表进行初始化;2.类外初始化:int CSom

2013-09-26 14:54:02 727

转载 JAVA内存泄露

Java内存管理机制在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(garbage coll

2013-09-14 09:17:28 581

原创 字典序问题

问题描述:字典编码,按照升序排列,且没有重复,a,1,b,2,.....z,26,ab,27,ac,28..................,az,51,bc,52,.....编程要求:给一个字符串,计算其在该字典序中的编码。程序源代码:// 字典序问题之2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includ

2013-08-07 10:38:46 714

原创 统计数字问题

问题描述:给定一个整数n,统计从1到n(数字最高位不允许为0)这么多个数中0,1,2,3,4,5,6,7,8,9分别出现的次数。问题解决:采用递归求解统计每一个数字0,1,2,....,9出现的次数累加。源代码:#include "stdafx.h"#includeint results[10];void count(int n){ while(n>0) {

2013-08-06 20:29:40 747

转载 常用的二值化算法

我们遇到的识别图片,经常被认为的加入杂色干扰,形成一个浓淡分布不均的多值图像。把这样一幅多灰度值的图像(Gray Level Image)转化为只有黑(前景文字部分)白(背景部分)分布的二值图像(Binary Image)的工作叫做二值化处理(Binariztion)。对于一般256级灰度的灰度图,0级灰度对应于黑色,255级对应于白色。二值化后0对应于黑色前景文字,1对应于白色背景。

2013-03-29 20:03:04 13842 1

转载 C++标准库中的数学函数

C++中数学函数,所在函数库为cmath.h、cstdlib.h、cstring.h、cfloat.h 所以只要加头文件#include、#include、#include、#includeC中数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct compl

2012-10-24 16:45:10 39815

原创 Opencv中仿射变换函数

2DRotationMatrix 2DRotationMatrix计算二维旋转的仿射变换矩阵 CvMat* cv2DRotationMatrix( CvPoint2D32f center, double angle,double scale, CvMat* map_matrix );center 输入图像的旋转中心坐标 angle 旋转角

2012-10-24 15:15:01 4153

转载 仿射变换

保距变换和仿射变换                           §1  平面的仿射变换与保距变换1.1 ――对应与可逆变换集合X到集合Y的一个映射f:X→Y是把X中的点对应到Y中的点的一个法则,即x∈X,都决定Y中的一个元素f(x),称为点x在f下的像。对X的一个子集A,记f(A)={f(a)|a∈A} ,它是Y的一个子集,称为A在f下的像。对Y的一个子集B,记

2012-10-24 15:04:25 14292

原创 数学形态学

数学形态学 基本原理 膨胀 腐蚀 相关性质 证明 开运算 闭运算 复合运算

2012-10-19 17:05:24 791

原创 数字图像处理——几何变换

几何变换 基本原理 一、平移变换 二、旋转变换 三、投影变换

2012-10-19 17:04:08 1086

原创 Hough变换原理

Hough变换一、直线方程:对应关系:二、直线系定理:三、定理——Hough变换检测直线的原理 四、算法1)2)3)4)   五、Opencv中的函数应用 利用 Hough 变换在二值图像中找到直线 CvSeq* cvHoughLines2( CvArr* image, void* line_storage, int me

2012-10-19 17:02:27 2792

原创 OpenCV2.0与VS2008

最近学习Opencv,主要用来做图像和视频的,当然第一步就是配置环境了!         在网上看了看,按照步骤一步一步的配置好,参见http://www.docin.com/p-280164582.html        主要步骤:        第一步,安装OpenCV2.0,从官方网站下载安装,主要就是源代码        第二步,编译opencv2.0  用Cmake编译

2012-10-12 16:45:20 603

转载 .net学习计划

.net学习计划2009-10-16 08:21如果你已经有较多的面向对象开发经验,跳过以下这两步:   第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET。 ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去!   第二步 对.NET Framework类库

2012-08-31 01:38:04 577

原创 常见的排序算法

一、冒泡排序#include#includevoid swap(int &a,int &b){ int temp=a; a=b; b=temp;}void BubbleSort(int arr[],int size){ int i,j; for(i=0;i  for(j=0;j   if(arr[j]>arr[j+1])    swap(

2012-08-28 13:06:33 350

原创 整数划分问题

将正整数n表示成一系列正整数之和n=n1+n2+n3+n4+......正整数的划分个数即上面的等式的个数的形式 求解方法:递归式的建立q(n,m):表示最大加数不大于m的划分个数故划分的个数为q(n,n),下面是递归式求解q(n,n)递归式:1)q(n,1)=1;显然的2)q(n,m)=q(n,n),当m>=n时3)q(n,n)=q(n,n-1)+1;

2012-08-26 17:28:21 711

原创 全排列问题

给定一组数,给出其全排列的算法算法:递归本质上可以用循环遍历代替,不过递归更加通用,且程序简单 源代码如下#include#include//using namespace std;void Swap(int &a,int &b){ int temp=a; a=b; b=temp;}void Perm(int list[],int k,i

2012-08-26 17:10:47 816

原创 矩阵连乘问题

矩阵连乘问题应用动态规划算法,将前面计算的重复值保存,一次来推进下一步的计算,直到得到m[1][n]的值,为最少的乘法次数 m[i][j]:表示计算A[i...j]所需的最少数乘次数 m[i][j]=min(i=s[i][j]记录断开位置,也就是最少计算次数的中间位置。    #includeusing namespace std;void Ma

2012-07-11 11:44:51 482

转载 二维数组名充当函数参数

正文:     首先,我引用了谭浩强先生编著的《C程序设计》上面的一节原文,它简要介绍了如何 将二维数组作为参数传递,原文如下(略有改变,请原谅):     [原文开始]         可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以可以指 定所有维数的大小,也可以省略第一维的大小说明,如:         void   Func(

2012-07-10 20:59:20 1350

原创 最长公共子序列问题

给定的两个序列,求其中公共的子序列的最长的并输出子序列是这样的序列,其在原序列中,并且每个元素在原来序列中是严格递增的公共子序列的定理:X={x1,x2,x3,...,xm}  Y={y1,y2,y3,...,yn}Z={z1,z2,...,zk};为X何Y的最长公共子序列则:(1)若xm=yn;则zk=xm=yn,且Zk-1是Xm-1和Yn-1的最长公共子序列(2)若

2012-07-10 20:12:07 753

原创 最大m子段和问题

由n个数组成的数组a[n],找出m个子段(不可重复),要求其和最大方法一、遍历,总共有C(n+1,m)C(n+1,m)中情况,时间复杂方法二、动态规划最关键的是b(i,j):表示数组a的前面j项中有i个子段的最大值,且最后一个子段包含a[j];maxb(m,j)(m=故该问题转化为求数组bb(i,j)=max{b(i,j-1)+a[j],maxb(i-1,t)(t...

2012-07-10 15:42:14 1100

原创 最大子矩阵问题

最大子矩阵问题(m*n)这个问题本质上最大子段和问题向二维的扩展,实质上是对数学公式转化后,最后一步可以是一维的情形,因为降低了复杂度。算法中行从0到m,列定为1=0,然后列增加,每次的列是一种数据结构,对应一维的情形。将两行对每一个列求和,每次得到n个列数的数,因而成为一维的情形。行有两个,遍历时有m*m种情况。最后是比较大小,得到最大的值即可。 注意算法中b[j]的

2012-07-10 10:38:08 731

翻译 Computer Vision:Algorithms and Applications (Image stitching)

第9章   图像拼接9 图像拼接对齐图像和拼接成无缝图像的马赛克算法是计算机视觉领域最古老和应用最广泛的算法。拼接算法创建高分辨率的马赛克照片来生产今天的数字照片和卫星图片。他们通常绑定在数码相机上,用于创建全视角的全景美图。图像拼接起源于摄影社区,大部分手动的密集方法基于经过调查的地面控制点,或者自动登记的关键点,用来将航空照片转变成大规模

2012-07-09 22:42:07 3742 2

原创 最大子段和问题

给定的n个整数(可以是负数)的序列啊a[1..n],求连续的的子段中和最大的值,并给出子段的启始下表和结束下标。注意:子段中可能包含负数,但是必须是连续的,中间不可断开若不允许负数,则只要计算连续正数中和最大的,复杂性较原来低若可以见断,则问题只要找出数组中全部是正数的数之和,问题更加简单 原问题的求解方法一、穷举遍历法该方法直接列举n个数种不同的子段个数,并求和,故有

2012-07-09 22:15:27 891

转载 跳跃表数据结构

跳跃表本文将总结一种数据结构:跳跃表。前半部分跳跃表性质和操作的介绍直接摘自《让算法的效率跳起来--浅谈“跳跃表”的相关操作及其应用》上海市华东师范大学第二附属中学 魏冉。之后将附上跳跃表的源代码,以及本人对其的了解。难免有错误之处,希望指正,共同进步。谢谢。    跳跃表(Skip List)是1987年才诞生的一种崭新的数据结构,它在进行查找、插入、删除等操作时的期望时间复杂度均为

2012-07-01 20:59:51 1847

原创 跳跃表的实现

跳跃表:就是将线性链表的指针改变成多个,使得可以跳跃中间的一些结点该算法可以很快的提高搜索效率,本人认为本质上还是与哈希散列表一致#include "stdafx.h"#include "targetver.h"#include #include #include "stdafx.h"#include"iostream"#include#include#

2012-07-01 17:13:17 970 2

原创 随机化算法-用数组实现有序递增链表

数组的标号作为地址信息,按照递增的顺序重新存放在link数组中,link数组存放的是下一个元素即下一个大一些的元素的地址。也可以这样理解,link数组是一种函数映射,实现一次运算,使得原本无序的数组经过link组织后有顺序。本算法也可以作为插入排序的一部分书写上用嵌套的[[[....]]]代替链表中->->->..... 关键:注重代码过程中是怎么设置link指针的,怎么修改指

2012-07-01 15:36:23 770

原创 拉斯维加斯 整数分割

拉斯维加斯算法解决整数分割(一次) // 整数分割.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "targetver.h"#include #include #include "stdafx.h"#include"iostream"#include#include#includeusing

2012-06-30 21:41:00 501

原创 Monte Carlo_素数

蒙特卡罗算法--判断素数 // 素数.cpp : 定义控制台应用程序的入口点。//// MonteCarlo.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include "targetver.h"#include #include #include "stdafx.h"#include"iostream"#includ

2012-06-30 20:51:01 605

原创 蒙特卡罗算法--主元素问题

用蒙特卡罗算法求解数组主元素问题蒙特卡罗算法:关键在于概率的分析计算,其理论基础是概率论下面是实现数组主元素问题的方法// MonteCarlo.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include "targetver.h"#include #include #include "stdafx.h"#include"io

2012-06-30 20:09:35 2463

原创 8皇后问题

8皇后拉斯维加斯算法与回溯法相结合的求解方法// LasVegasN后问题.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "targetver.h"#include #include #include "stdafx.h"#include"iostream"#include#include#inclu

2012-06-30 14:43:20 733

系统分析师考试真题

系统分析师 考试真题,2004--2010年

2012-05-22

C++语言程序设计答案

C++语言程序设计,清华大学出版社,郑莉,董渊,张瑞丰编著

2011-12-14

c语言程序设计,教程

程序设计,原汁原味,贝尔实验室,书籍内容

2010-04-28

C语言程序设计教程,书籍

C语言设计,贝尔实验室,原汁原味的C书籍

2010-04-28

空空如也

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

TA关注的人

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