自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mengde007的专栏

穷则独善其身,达则兼济天下

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

原创 编程之美发帖水王之无限拓展

假定求去最大发帖的前I个人;总贴位N;(I其算法如下;//水王发帖算法;candidate[i];ntimes[i];bool done=0;//0代表此次无结果;否则成功匹配;void Find(Type* ID,int N){int a;for(int j=0;j<N){ for(a=0;a<i;a++){ if(ntimes[a]

2009-10-19 10:58:00 731 1

原创 爱情的故事

穷男生不该有爱情一个悲哀的故事(……):穷男生不该有爱情,所以我跟她说分手吧,我配不上你,是我不够好,我不忍心让你跟我一起吃苦。我上有父母爷爷奶奶,下有弟弟妹妹还等着念书,我起码要多辛苦10年,才能让全家人过上好日子,我爱你,所以我不应该跟你在一起,我们一开始就错了,对不起,我希望你能忘记我。如果10年以后我自由了,我会先去找你,你幸福的话我绝不打扰你,你要是还没有找到合适的,那么让我再说一次我爱

2008-06-15 22:55:00 718 1

原创 boost之shared_ptr,weak_ptr计数

今天我也对boost的shared_ptr和weak_ptr作个简单的介绍; 总所周知,boost给我们提供了方便的内存管理,不需要我们手动的释放内存,shared_ptr发挥了一个重大作用。而weak_ptr作为一个观察者,却对计数不理不睬。 看源码分析, 它们都有类似的

2011-08-22 23:45:13 2358

原创 随机数生成

<br /> int* GetRandomSequence2(int total) { int* sequence = new int[total]; int* output = new int[total]; for (int i = 0; i < total; i++) { sequence[i] = i;

2011-01-17 10:38:00 487

转载 KMP算法引论

     解决这类问题,通常我们的方法是枚举从A串的什么位置起开始与B匹配,然后验证是否匹配。假如A串长度为n,B串长度为m,那么这种方法的复杂度是O (mn)的。虽然很多时候复杂度达不到mn(验证时只看头一两个字母就发现不匹配了),但我们有许多“最坏情况”,比如,A= "aaaaaaaaaaaaaaaaaaaaaaaaaab",B="aaaaaaaab"。我们将介绍的是一种最坏情况下O(n)的算法(这里假设 m<=n),即传说中的KMP算法。<br />     之所以叫做KMP,是因为这个算法是由Knu

2011-01-14 09:45:00 474

原创 矩阵

<br />今天谈到矩阵上面;OPENGL的矩阵有下面几种:投影的,模型的等等……<br />但是每种矩阵都有一个特点:那就是矩阵累计。<br />如果我们对于某种矩阵就行了某种操作,那么会遗留下来,也就是一种累加的效果,下次你可当心了。<br />所以我们有时为了不破坏当前的这种矩阵,通常压入堆栈 ,然后更改,操作完毕后弹出堆栈即可。<br /> 

2010-12-03 09:44:00 439

原创 昨夜幽梦

<br />昨天夜晚,做了一个梦,一个凄美的梦。梦里面我爱上了一个女孩,而她却生命将尽,我带着她去看梅花,梅花含羞,却很漂亮。<br />但是我心爱的女孩却要离我而去,她躺在我的怀里,慢慢的呼吸着……<br />醒来,我的眼泪欲出,我无法预知这代表着什么。

2010-09-15 20:20:00 466

原创 Heap Sort

<br />堆的定义:     <br />   n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):<br />    (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤)<br />    若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。<br /> <br />   堆的这个性质使得可以迅速定位在

2010-08-28 21:32:00 378

转载 C++之萃取技术

<br />自从C++中引入了template后,以泛型技术为中心的设计得到了长足的进步。STL就是这个阶段杰出的产物。STL的目标就是要把数据和算法分开,分别对其进行设计,之后通过一种名为iterator的东西,把这二者再粘接到一起。设计模式中,关于iterator的描述为:一种能够顺序访问容器中每个元素的方法,使用该方法不能暴露容器内部的表达方式。可以说,类型萃取技术就是为了要解决和iterator有关的问题的,下面,我们就来看看整个故事。<br /><br /><br /> <br /> <br />

2010-08-24 10:48:00 1070

转载 绘图双缓冲

<br />显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。<br />MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。<br />我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈谈我的一些观点。 <br />1、显示的图形为什么会闪烁?<br />我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是

2010-08-12 10:12:00 403

原创 多线程之volatile

现在进入了多核时代;程序也要发生一系列变化;比如说现在单纯的变量已经不再安全了;比如说一个int型别的数据,我们同时开了几个线程在跑。现在有了一个线程突然改变了该int变量,我们的意图是几个线程都要把这个变量反映出来;但是往往事与愿违。让我们来分下问题所在:int a;while(a){……}程序执行到该段时,首先要从内存里面读取到寄存器里面;然后程序从寄存器里面读取。这里就有了一个漏洞了。假设我们的编译器做了优化(在while循环那段),这样一来,就会导致我们的变量的变化不能及时反映出来;我们 的软件该做

2010-07-12 21:47:00 521 6

原创 编程珠玑之大记录问题

问题是这样的:一个文件包含一个1000万级别的记录;每个记录都要大于0并且小于10的7次方;只有一个数出现了2次,要求输出排序后的序列;限制内存1M,运行时间10s;  对于这样的设计,我们可以用位图来解决;只需要1000万个,并且内存正好是1M,符合要求;从文件里面遍历,取出一个数然后对应到位图中去,检查该标志位是否为0,如果为0,表示尚未有数据对应,那么置1;为1则表示

2009-12-13 15:10:00 408

原创 归并排序之非递归算法

总所周知,递归算法是非常低效的;所以就有了非递归算法,相比而言,效率大大的提高了;#include #include void Merge(int *sr, int *di, int left, int mid, int right){ int i = left, j = mid + 1, k = left; while (i <= mid && j <= right)

2009-10-21 10:12:00 1030 5

原创 遇到了CString要转char,int等等怎么办

昨日遇到了CString类型的数据;需要转换为int,char类型,傻了两分钟;然后迅速的百度;忽然察觉大部分的转换异常的麻烦;今日总结了下了简单的方法;其实早就有了sscanf函数;以前没有注意,今日拿出来说说;比如说我们用了CString str="126";假如说这个数据是从edit控件等地方取得;那么我们需要int类型来计算;就有了int a;sscanf(str,

2009-06-14 21:49:00 5024 4

转载 主线程与子线程的问题

顺序调用DLL系统是顺序调用D L L的D l l M a i n函数的。为了理解这样做的意义,可以考虑下面这样一个环境。假设一个进程有两个线程,线程A和线程B。该进程还有一个D L L,称为S o m e D L L . d l l,它被映射到了它的地址空间中。两个线程都准备调用C r e a t e T h r e a d函数,以便再创建两个线程,即线程C和线程D。

2009-03-26 17:59:00 1745 1

原创 Csocket基本原理

我通过几个采用 CSocket 类编写并基于 Client/Server (客户端 / 服务端)的网络聊天和传输文件的程式  ,在调试这些程式的过程中,追踪深入至 CSocket 类核心源码 SockCore.cpp , 对于CSocket 类的运行机制可谓是一览无遗,并且对于阻塞和非阻塞方式下的 socket 程式的编写也是稍有体会。 阅读本文请先注意 : •  这里的阻塞和非阻塞的概念

2009-03-20 20:09:00 2321 1

原创 resetevent

多线程程序设计之线程通  线程之间通信的两个基本问题是互斥和同步。  线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。  线程互斥是指对于共享的操作系统资源(指的是广义的"资源",而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某

2009-03-10 14:56:00 4489

转载 堆与栈

堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)

2009-03-05 13:41:00 522

chat(csocket)

一个基于CSocket实现的聊天室.Server端和Client端

2009-03-28

md5加密算法的c++代码实现

md5加密算法的c++代码实现<br>

2008-04-19

c书籍

随便看看

2007-12-07

邻接表的事情

本人对邻接表做了一些浅薄的了解,希望同志们多指教

2007-12-03

一个月挑战c++

让你一个月类、内彻底对C++有一个了解

2007-12-03

空空如也

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

TA关注的人

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