自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(34)
  • 资源 (5)
  • 收藏
  • 关注

原创 _BLOKC_TYPE_IS_VALID(pHead->nBlockUse)

class Test{public: Test(int val = 1){i = new int ; *i = val;} ~Test(){delete i;} int getVal(){return *i;}private: int *i;};int main(){ Test a,b(2); a = b; cout<<a.getVal()<<endl; return 0

2014-01-18 11:40:52 713

原创 MFC中显示像素值保存在二维数组中的BMP图像

BYTE *imShow = new BYTE[height*width]; for(int j=height-1,cur=0;j>=0;--j) { for(int i=0; i<width; ++i) imShow[cur++] = (BYTE)imRot[j][i]; } if (m_bmp.m_hObject!=NULL) //判断 m_bmp.DeleteO

2013-12-28 11:07:19 2823

原创 BMP图像的选择与显示

void CMFCTestDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); CFileDialog file_open_dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,("BMP Files(*.bmp)|*.bmp|All Files(*.*)|*.*||")); file_

2013-12-28 10:59:17 933

原创 2013巨人网络C++笔试题

1、进程与线程的区别,及其优点2、如何将自己写的程序,开机直接打开3、为何使用Release()删除,而不是使用delete删除4、关键字const;static;extern;volatile;auto的用法5、struct结构拷贝#define const int MAXLength 32struct ttk{int a;char first[MAXLeng

2013-10-23 09:21:23 971

原创 短文 词频

本程序从正文文件text.txt读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到正文文件word.txt中.程序用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历该二叉树,将遍历经过的二叉树上的节点的内容输出.#include#include#includeusing namespace std;ifs

2013-08-21 15:13:05 439

原创 寻找第K大的数

可以用容量为K的最小堆来存储最大的K个数。最小堆的堆顶就是最大K个数中最小的一个,即第K大的数。每次新考虑一个数X,如果X比堆顶的元素Y小,则不需要改变原来的堆,如果比堆顶元素大,那么用X替换堆顶的元素Y。在X替换堆顶元素Y之后,X可能破坏最小堆的结构,需要更新堆来维持堆的性质。更新过程花费的时间复杂度为O(log2K).#includeusing namespace std;void

2013-08-17 12:06:09 462

转载 二叉查找树(二叉排序树)的详细实现

1、序     详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、  查找最大值、查找最小值、查找指定结点的前驱和后继2、二叉查找树简介     它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树

2013-07-06 22:40:30 504

原创 二叉树树的基本算法

#includeusing namespace std;#define OK 1#define ERROR 0#define OVERFLOW -2typedef char ElemType;const int MaxLength = 30;//结点个数不超过30个typedef struct BiTreeNode{ ElemType data; struct BiTree

2013-06-24 14:20:41 473

原创 期望为线性时间的选择算法randomizedSelect

一般选择算法看起来要比找最小值这样的简单问题更难,但有期望为线性时间的选择算法,期望运行时间为O(n)。#include#includeusing namespace std;template int partition(T *a,int first,int end) //实现了对子数组A[p..r]的原址重排{ int x = a[end-1]; int i = first

2013-06-09 21:14:07 888

原创 桶排序

桶排序假设输入数据服从均匀分布,平均情况下它的时间代价为O(n)。与计数排序类似,因为对输入数据做了某种假设桶排序的速度也很快。具体来说,计数排序假设输入数据都属于一个小区间内的整数,而桶排序则假设输入是由一个随机过程产生,该过程将元素均匀、独立地分布在[0,1)区间上。#includeusing namespace std;template void insertSort(T *a,

2013-06-09 21:04:54 447

转载 排序算法稳定性

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。判断方法:对于不稳定的排序算法,只要举出一个实例,即可说明它的不稳定性;而对于稳定的排序算法,必须对算法进行分析从而得到稳定的特性。需要注意的是,排序算法是否为稳定

2013-06-08 11:09:39 694

原创 计数排序

//计数排序假设n个输入元素中的每一个都是在0到k区间内的一个整数,其中k为某个整数。#includeusing namespace std;int* countingSort(int *A,int *B,int ASize){ int maxKey = -65535; for(int i=0;i<ASize;++i) { B[i] = 0; if(A[i]>maxKey)

2013-06-08 09:56:55 348

原创 快速排序

快速排序的运行时间依赖于划分是否平衡,而平衡与否又依赖于用于划分的元素。如果划分是平衡的,那么快速排序算法性能与归并排序一样。如果划分是不平衡的,那么快速排序的性能就接近于插入排序了。#includeusing namespace std;//快速排序template int partition(T *a,int first,int end) //实现了对子数组A[p..r]的

2013-06-07 15:11:24 409

原创 优先队列

堆的一个常见的应用:作为高效的优先队列。优先队列是用来维护有一组元素构成的集合S的数据结构,其中的每一个元素都有一个相关的值,称为关键字。一个最大优先队列支持一下操作:INSERT(S,x): 将元素x插入集合中。MAXIMUM(S):返回S中具有最大键字的元素。EXTRACT-MAX(S):去掉并返回S中的具有最大键字的元素。INCREASE-KEY(S,x,k):将元素x的

2013-06-07 10:09:22 426

原创 堆排序

#includeusing namespace std;void maxHeap(int *a,int i,int heapSize){ int l = 2*i; int r = 2*i+1; int largest=0; if(la[i-1]) //左孩子大于父节点 largest = l; else largest = i; if(ra[large

2013-06-06 16:08:04 371

原创 最大子数组问题

//分治策略#includeusing namespace std;struct subarray //返回一个下标元组划定跨越中点的最大子数组的边界,并返回最大子数组中值的和{ int left; int right; int sum;}sub,subL,subR,subC;subarray FIND_MAX_CROSSING_SUBARRAY(int *a,int l

2013-06-05 15:03:39 500

原创 bubbleSort

#includeusing namespace std;templatevoid bubbleSort(T *a,int num){ for(int i=0;i<num-1;++i) for(int j=num-1;j>=i+1;--j) if(a[j-1]>a[j]) swap(a[j-1],a[j]);}templatevoid print(T *a,int n

2013-06-04 11:17:02 440

原创 selectionSort

#includeusing namespace std;templatevoid selectionSort(T *a,int num){ int min=0; //最小值下标 for(int i=0;i<num-1;++i) { min = i; for(int j=i+1;j<num;++j) if(a[j]<a[i]) min = j; swap(a[

2013-06-04 11:03:36 470

原创 mergeSort

#includeusing namespace std;template void merge(T *a,int left,int mid,int right){ int n1=mid-left+1; int n2=right-mid; T *L = new T[n1]; T *R = new T[n2]; for(int i=0;i<n1;++i) L[i] = a[left

2013-06-04 10:17:42 489

原创 insertSort

#includeusing namespace std;template void insertSort(T *a,int num){ int i,j; T key; for(j=1;j<num;++j) { key=a[j]; i=j-1; while(i>=0&&a[i]>key) { a[i+1]=a[i]; --i; } a[i+1]=ke

2013-06-03 15:42:39 442

转载 vi命令

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复f

2013-05-21 11:35:10 362

原创 使用者自定义User-Defined的迭代器

以下实例说明如何编写自定义的迭代器。这事一个关联式容器的Insert迭代器,虾米那是其实作代码#includeusing namespace std;//template class for insert iterator for associative containerstemplate class asso_insert_iterator:public iterator{p

2013-05-15 14:59:12 342

原创 数组外包装为STL容器

下面介绍一个很有用的数组包装类别,性能不输一般的数组,而且更安全。这是“使用者自行定义STL容器”的一个很好的例子。该容器所使用的,就是包装法:在数组之外包装一层常用的容器界面。Class carray定义如下://carray.h#includetemplateclass carray{private:T v[thesize]; //fixed-size array

2013-05-11 17:25:23 745

原创 运用maps strings 并于执行期指定排序准则

#include#include#include#include#includeusing namespace std;//function object to compare strings//allows you to set the comparison criterion at runtime and compare case insensitive

2013-05-11 11:16:38 473

原创 Sets 执行期制定排序准则

无论是将排序准则作为第二个template参数传入,或是采用缺省的排序准则less#include#include#include"print.h"using namespace std;//type for sorting criteriontemplateclass RuntimeCmp{public:enum cmp_mode{normal,rever

2013-05-09 21:32:07 533

原创 STL Container

1、以标准输入装置完成初始化操作:vector vec((std::istream_iterator(cin)),(std::istream_iterator()));注意不要遗漏了涵括“初始化参数”的那对“多余的”括号,否则这个表达式的意义会迥然不同。以标准输出堵操作://print elements separated with spacescopy(vec.beg

2013-05-07 20:31:36 436

转载 虚拟继承 与 sizeof

1.为什么要引入虚拟继承虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:class Aclass B1:public virtual A;class B2:p

2013-04-25 20:39:56 451

原创 字符指针

很好的一个字符指针例题char *str[]={"welcome","to","Fortemedia","Nanjing"};char**p=str+1;    str[0]=(*p++)+2;    str[1]=*(p+1);    str[2]=p[1]+3;str[3]=p[0]+(str[2]-str[1]);coutcou

2013-04-25 13:29:52 419

原创 sizeof 部分用法

1、指针变量的sizeof指针记录了另一个对象的地址。既然是来存放地址的,那么它当然等于计算机内部地址总线的宽度。所以在32位计算机中,一个指针变量的返回值必定是4(注意结果是以字节为单位)。char* pc = "abc";int* pi;string* ps;char** ppc = &pc;void (*pf)();//指针函数size

2013-04-12 21:51:59 316

转载 strcpy写法 出现频率最高的笔试题

题目已知strcpy函数的原型是:char * strcpy(char * strDest,const char * strSrc);⒈不调用库函数,实现strcpy函数。⒉解释为什么要返回char *。解说⒈strcpy的实现代码char * strcpy(char * strDest,const char * strSrc){

2013-04-09 21:57:58 382

原创 类String定义原型

定义类String的原型为:class String{public:String(const char *str = NULL);// 普通构造函数String(const String &other); // 拷贝构造函数~ String(void); // 析构函数String & operator =(const String &oth

2013-04-09 19:49:47 436

原创 算法(Algorithm)

算法(Algorithm)处理多个区间如果某个算法用来处理多个区间,那么当你调用它时,务必确保第二(以及其他)区间所拥有的元素个数,至少和第一区间内的元素个数相同。要想让目标区间够大,你要不一开始就给他一个正确大小,要不就显式地改变其大小。这两个办法都只适用于序列容器(vectors,deques,lists)。关联式容器根本不会有此问题,因为关联式容器不可能被当做覆写型算法的操作目标

2013-04-08 22:35:32 485

原创 auto_ptr智能指针

1、Class auto_ptr 这个智能指针应该保证,无论在何种情形下,只要自己被摧毁,就一定连带释放其所指资源。而由于智能型指针本身就是区域变量,所以无论是正常退出,还是异常退出,只要函数退出,它就一定会被销毁。         注意:auto_ptr不允许使用一般指针惯用的赋值(assign)初始化方式。必须直接使用数值来完成初始化:        s td::auto_ptrptr

2013-04-06 14:51:22 338

原创 让自己习惯C++

尽可能使用const         Chargreeting[] = “Hello”;         Char*p = greeting;                                                //non-constpointer, non-const data         Constchar* p = greeting;

2013-03-23 21:19:15 328

求一个字符串中的连续出现次数最多的字串

得出一个字符串中的连续出现次数最多的子串

2014-01-06

C++入门经典(第三版)

C++入门经典 第三版 一本十分经典的C++入门教程

2013-06-26

ACM竞赛常用算法与数据结构

acm竞赛中常用算法与数据结构、常见题型、时空复杂度分析等

2013-06-26

空空如也

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

TA关注的人

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