代码改变世界

数据结构利器之私房STL(中)

2012-12-06 23:34 by 捣乱小子, 2794 阅读, 3 推荐, 收藏, 编辑
摘要:索引数据结构利器之私房STL(上)数据结构利器之私房STL(中)数据结构利器之私房STL(下)这篇文章http://www.cnblogs.com/daoluanxiaozi/archive/2012/12/02/confidential-stl.html由于严重违反了『博客园首页』的相关规则,因此笔者改将《私房STL》系列的每一篇都整合到博客园中,取消外链的做法。另,考虑篇幅的问题,此系列文章将分为上、中、下。此篇为《数据结构利器之私房STL(中)》。喜欢就顶下:-)此系列的文章适合初学有意剖析STL和欲复习STL的同学们。私房STL之map和set私房STL之Hashtable私房STL算 阅读全文

数据结构利器之私房STL(上)

2012-12-02 16:13 by 捣乱小子, 2438 阅读, 7 推荐, 收藏, 编辑
摘要:索引数据结构利器之私房STL(上)数据结构利器之私房STL(中)数据结构利器之私房STL(下)这篇文章http://www.cnblogs.com/daoluanxiaozi/archive/2012/12/02/confidential-stl.html由于严重违反了『博客园首页』的相关规则,因此笔者改将《私房STL》系列的每一篇都整合到博客园中,取消外链的做法。另,考虑篇幅的问题,此系列文章将分为上、中、下。此篇为《数据结构利器之私房STL(上)》,中篇和下篇将陆续发布。喜欢就顶下吧:-)此系列的文章适合初学有意剖析STL和欲复习STL的同学们。学过c++的同学相信都有或多或少接触过STL 阅读全文

数据结构利器之私房STL

2012-12-02 00:11 by 捣乱小子, 1890 阅读, 3 推荐, 收藏, 编辑
摘要:此系列的文章适合初学有意剖析STL和欲复习STL的同学们。都是原创!学过c++的同学相信都有或多或少接触过STL。STL不仅仅是c++中很好的编程工具(这个词可能有点歧义,用类库更恰当),还是学习数据结构的好教材。它实现了包括可边长数组,链表,栈,队列,散列,映射等等,这些都是计算机专业同学在数据结构这门核心课程当中需要学习的。在深入一个工具之前,首先要熟练使用它。STL也一样。在剖析STL之前,可以先动手使用STL,比如其中的vector,list,stack等,热热身,而使用比剖析简单的多,何乐而不为呢。网上很多仁人志士都推荐《C++标准程序库》,这本书好!但如果是新手,又急于了解如何使用 阅读全文

写代码之前要做什么?

2012-11-18 22:22 by 捣乱小子, 2935 阅读, 0 推荐, 收藏, 编辑
摘要:在想到这个问题的时候,很多童鞋都会笃定回答:我会先构思程序大体的框架,接着就开始写代码。A:难道你就不将你的构思巨细文档下?B:一般的编程任务不会太难的话,我觉得YY也很可靠,可能更高效。A:为什么这么急的写代码?B:手痒~~先小说下YY。YY即意淫,这里意即写代码时,不草稿不文档,脑瓜里天马行空,心猿意马。我不确定是不是大多数的Coder都这么做?!但我周遭的许多同学确实是这么说的做的。首先,很可能是程序猿对自己的YY思维太过自信,再者就是急功近利——想要一睹自己在写完代码后『F7』+『Ctrl+F5』(注:VS2008 C++的生成解决方案和运行的快捷键,笔者经常在写完代码后,习惯这样快速 阅读全文

玩转位图(bitmap)2

2012-11-08 01:12 by 捣乱小子, 1239 阅读, 2 推荐, 收藏, 编辑
摘要:2012年11月8日9:25:47 已上传源代码和可执行文件2012年11月8日1:03:01 深夜断网,不能上传源码和可执行文件,明日早起补上。喜欢的童鞋们先收藏。小丸子查看大图:http://daoluan.net/blog/wp-content/uploads/2012/11/Maruko.jpg接上篇:http://daoluan.net/blog/enjoy-bitmap/上篇中发布的程序中不支持png,jpg,gif等主流的图片格式的玩转,只支持24位位图。这一次对软件做以下更新:提供png,jpg(jpeg),tif(tiff)三种图片格式(抱歉gif尚未解决)的支持根据图片的大 阅读全文

玩转位图(bitmap)

2012-11-01 12:51 by 捣乱小子, 1860 阅读, 2 推荐, 收藏, 编辑
摘要:这是别人的网页版。http://photo2text.com/乔帮主年前加入一个项目小组,只要是做图像处理的软件,组内分配第一个任务便是熟悉位图。http://www.cnblogs.com/daoluanxiaozi/tag/MFC%E5%B0%8F%E9%A1%B9%E7%9B%AE/,但后来不知道为什么,没有呆下去。大三刚开学的时候,@杨海坡 换了个QQ头像,大致的效果如下(原图见about页面):图片中有小小的方块,每个方块内对应一个字符。YY下,结合对位图的了解,可以动手实现,“这个可以有”。png,jpg,gif等都不懂,所以从位图下手,来实现图片的处理。思路:读bmp文件读取一个 阅读全文

『AA』AutoAnchor自动猫

2012-09-17 19:38 by 捣乱小子, 1181 阅读, 1 推荐, 收藏, 编辑
摘要:2012-09-1719:40:31:嘿嘿,给自己出了道编程题,难度不大(YY都可以), 大家有兴趣可以自己去实现下。文章目录引子思路用法bug源代码 & 可执行文件引子一篇博文如果太长的话,为博文标题添加锚链接可以给众多的读者导航,提高文章的易读性。我也喜欢上了锚链接。但博客后台编辑器的“锚链接工具”我不会用,于是AutoAnchor 自动猫的灵感就来了。思路这道编程题不难,YY都可以得到一个解决方法。每次搜寻到<h3>标签就自动在其前面添加<a name="%d"></a>,处理好html文件之后,再在文章的头部添加:< 阅读全文

漫谈界面和数据

2012-09-15 00:16 by 捣乱小子, 1557 阅读, 1 推荐, 收藏, 编辑
摘要:2012-09-15 00:18:瞅着要不要发?!求指导,欢迎斧正。以下是原文。下面的文字是关于界面和数据的,是在做了项目之中之后的心得体会。求指导,欢迎斧正。刚开始接触界面编程的时候,还不能意识到界面和数据的概念。所以代码的思路纯粹是跟着感觉走的,和搭积木一样。这时候,我更倾向于按照习惯——按事物的功能分类,把界面和数据代码放到同一个地方,这样让我对界面和数据(当时还没有清晰的概念)有满意的控制优越感。正是初学者,一开始都动手做自己YY的小软件,数据和界面的问题并不是很突出。这时候做到界面元素和业务逻辑的结合显然意义不大——后来发现句话说的有点早。原因是往后我又YY了下,想升级下上次小软件的 阅读全文

C++ 一不小心被delete两次

2012-09-11 12:10 by 捣乱小子, 4542 阅读, 2 推荐, 收藏, 编辑
摘要:2012-09-11 18:04:看到园里朋友们这么热心,有那么一会心里好兴奋。:)2012-09-11 下午:本文曾出现很严重的错误,但不要紧,感谢园友们的即使指正。不喜欢程序语言的C++类中,有时候使用到传值调用(对象实体做参数),遇到这种情况,可要小心了!特别是当你所传值的对象生命周期较长,而... 阅读全文

UIButton 简易的UI

2012-09-10 12:34 by 捣乱小子, 2528 阅读, 2 推荐, 收藏, 编辑
摘要:前些阵子,听说有个DirectUI的源码,很有兴致的去Google code上下载下来阅读,但后来没有坚持下来,DirectUI所看重的是窗口的安全性:只要能得到窗口的句柄,你几乎可以为所欲为了;但DirectUI显然没有这个问题,因为其所支持的控件都是windowless,没有句柄的,所有控件都是画出来的。接下来折腾XPButton,总算能看懂。但按钮依旧没有摆脱窗口,只是简单基础基础类库CButton,通过自绘实现DIYbutton。通过绘图的方式可以实现UIButton(画出来的按钮)。但在MFC下如果有多个按钮,那么代码会变得比较凌乱,所以可以把这部分抽象出来得到UIButton类。下 阅读全文

基于TCP的C/S初级网络编程2

2012-08-06 20:40 by 捣乱小子, 1490 阅读, 1 推荐, 收藏, 编辑
摘要:导读本篇文章对http://www.daoluan.net/blog/?p=774中的“计算器”进行改进,与大家分享。上面那篇中的服务端属重复型,即一个时刻只处理一客户的请求,处理期间不搭理其他客户。此篇对上篇的“计算器”进行小小的改进——能够接受多个客户的请求。改进细则:独立bind,listen,accept,serve(即calc过程)功能模块;所有错误成功提示提取至各功能模块(函数)之外,错误/成功根据各函数的返回值判断(这更符合UNIX编程风范);客户的服务过程由产生的子进程负责。缺陷:由子进程来负责serve的部分。服务器主进程(父进程)不负责等待子进程结束,资源由内核回收(这一要 阅读全文

基于TCP的C/S初级网络编程1

2012-08-02 21:29 by 捣乱小子, 2648 阅读, 5 推荐, 收藏, 编辑
摘要:导读本篇实现C/S架构的“计算器”,与大家分享。看了会网络编程,便不自觉YY了下:实现一个简单的计算器,客户端给出简单的运算,服务端负责运算。这一小项目做起来很有意思,而且难度不大,所以推荐初学者试着去做做。下面分享在实现上述“计算器”的过程。简单的基于tcp协议的 C/S编程都离不开这几个函数:服务端:socket,bind,listen,accept,recv,send客户端:socket,connect,recv,send因为“计算器”还设计涉及客户端的阻塞(因为客户端提交了运算要求过后,服务端可能要等会才能回送计算结果,这时要求客户端阻塞等候),所以涉及select函数。select函 阅读全文

Unix/Linux 那些系统启动后的进程

2012-07-13 14:47 by 捣乱小子, 2229 阅读, 4 推荐, 收藏, 编辑
摘要:闲扯什么时候开始有“UNIX/LINIX”这一词汇,我忘了?只知道它是一个操作系统,跟dos一个级别的?!也就停留在这个概念的层次上,所以很多对我来说都是迷。UNIX也走过了40多个年头的路程,而它的每一个组织不断得到改进;21世纪开源势头正猛,前进的步伐更快了!正文眼过千边,不如收过一遍!以下结论来自apue、互联网或者些许自己的理解,实践环境:Linux 2.6。当内核加载完成之后,会创建init进程,它是系统的第一个进程init。init进程ID为1,也因此它是之后所有进程的“祖宗”!init进程是系统进入了多用户的状态,允许多个终端设备登录(tty1,tty2...)。对于每一个终端设 阅读全文

有趣的位运算

2012-07-10 15:36 by 捣乱小子, 616 阅读, 0 推荐, 收藏, 编辑
摘要:看了会《c程序设计语言》的位运算一节,重温了下“位运算”的巧妙与高效。与操作可以用来判断一个整数的奇偶性,依据二进制的性质可以很容易得到这样的结论,因此:if a&1 a is odd; else a is even;左移右移的应用应该更熟悉,可以方便进行*2和/2操作。之前遇到的应用有快速幂之类的。学习程序设计的时候一般都会遇到这个问题:设计一个程序,统计整数中值为1的二进制位进行统计。一般的做法无非是:遍历所有的位,测试每一位是否为1,为1则进行统计。#include<iostream> using namespace std; int main() { int c.. 阅读全文

【字符串匹配】KMP算法之道

2012-06-14 00:58 by 捣乱小子, 2287 阅读, 0 推荐, 收藏, 编辑
摘要:修订于2012-06-18,心急的读者可以着重看“有趣的字符串匹配提示”,这个例子看懂了,KMP也就差不多了。闲话上午算法考试的时候,感觉OK,前一两星期幸好把图算法都吃透了一遍,复习的时候节省了时间:)。前一半考题不理解背书的都可以,有几题没记过,不靠谱地照着理解写下来。最后的吹水题让我想起了之前的比赛,有一题是曹老师给的实验题,刚好比赛上出现了,而且相似度极高。要是高考,曹老师可就红了:)。这也让我捡了便宜。我们校区2012的招生计划出来了,结果我们校区悲催到只招30个法语本科生,也就是说2012的本科孩子只有30人。不知道法语的怎么看,但对这个校区的未来,我是看不到什么希望。“坑爹啊.. 阅读全文