- 博客(31)
- 资源 (6)
- 收藏
- 关注
原创 遇到一个诡异的regedit.exe程序问题
<br /> 最近在调试一个注册表操作相关的程序。调试注册表写入代码时发现了一件奇怪的事情。用RegSetValue API执行注册表写入操作,该函数返回执行成功,但是通过regedit.exe查看注册表时却发现内容没有被修改(重新启动regedit,按F5刷新均告无效)。一开始我反复调试,以为肯定是写入失败了,但API确实返回了执行成功。于是我试着通过RegQueryValueEx执行读取操作,居然能读到我修改到的值。<br /> 最后不得不怀疑是regedit.exe程序的问题。于是下载了一个第三方
2011-02-12 19:43:00
2748
2
转载 [转]一些计算几何的基础
<br />转载地址:http://blog.sina.com.cn/s/blog_4d0d397d01009w5f.html计算几何基本概念和常用算法_廖永峰_新浪博客<br />本文整理的计算几何基本概念和常用算法包括如下内容:<br />矢量的概念<br />矢量加减法<br />矢量叉积<br />折线段的拐向判断<br />判断点是否在线段上<br />判断两线段是否相交<br />判断线段和直线是否相交<br />判断矩形是否包含点<br />判断线段、折线、多边形是否在矩形中<br />判断矩
2010-07-14 00:31:00
2519
原创 去年写的代码大全笔记(其实是摘记)
<br />Reader: Roof前言: 虽然近年来前卫的开发实践迅速发展,但普通的实践手段并没有太大变化。很多程序的开发依然漏洞百出、迟于交付并且超出预算。<br /> 软件业的现状是,很多程序员并未接受正规的软件开发教育。<br /> 软件业的内行人士,几乎没有心情去分享他们的编程经验和技术,即使有,也是非常零散的。<br /> 学习并掌握不止一门语言通常是专业程序员职业生涯的分水岭。<br /> 软件构建这个阶段,常常被忽视。<br /> “代码构建”一般占据
2010-06-06 22:41:00
4286
原创 从floyd算法学习动态规划
floyd的相关概念看这里。 floyd的代码实现其实很简单: void floyd(){ for(k=0;k 这里我一直好奇的是这三个漂亮的循环是怎么完成最终正确的结果的,如何证明它们是正确的。直到看了这里的解析,才算弄懂了。 floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径。从动态规划的角度看问题,我们需要为这个目标重新做一个诠释(这个诠释正是动态规划最富创造力的精华所在),floyd算法加入了这个概
2010-06-06 22:40:00
10364
3
转载 [转]马化腾:如何从“较好”到“最好”
马化腾:如何从“较好”到“最好”本文发表于 2009-06-15 08:31 |246次阅读 | 来源:21世纪经济报道 | 共有评论()条 发表评论关键词:腾讯 | 感谢ydj9931的提供 | 收藏这篇新闻 <!--show_ads_zone(13);--> <!---->
2009-06-15 10:26:00
2458
原创 windows API练习(2)多字节编码转UNICODE编码
wstring MtbToWstr( const string& str, UINT uCodePage = CP_ACP ){ LPWSTR lpwszWide = NULL; DWORD cbszWide = 0U; DWORD dwRet = 0U; wstring wstrRet; /// calculate the require size cbszWid
2009-03-12 01:15:00
3579
原创 windows API练习(1)返回错误码字符串的函数
#include #include using std::wstring;wstring GetErrIDMsg( DWORD dwError ){ HLOCAL hlocal = NULL; wstring wstrRetMsg; DWORD dwRet = FormatMessageW( FORMAT_MESSAGE_FROM_S
2009-03-10 13:17:00
2527
原创 C++的=运算符重载并非简单内存拷贝
当我们定义一个C++类,如果没有为其定义=运算符重载,那么编译器就为其定义默认的=运算符重载。即默认拷贝。前阵子一个朋友问我:默认的=运算符重载是否就是直接的内存拷贝? 由于自己功底有限,没有考虑过这个问题,所以不敢立刻回答。虽然我们常说浅复制和深复制,但我确实没有想过默认拷贝函数是否只是简单的拷贝内存内容。 当然,事实胜
2008-10-30 20:10:00
2497
1
原创 迅雷2008实习生笔试题C++卷题解
具体题目从我上传的资源上下。http://download.youkuaiyun.com/source/6825641.C 2.D 3.题目有误 4.B 5.D 6.题目有误 7.A 8.B 9.B 10.B 11.D(题目有误,少打了%d) 12.A 13.题目有误!s1指向的空间是常量区,不可修改! 正确的程序应该是 char s1[] = "12345", s2[] = "1234"
2008-10-11 18:54:00
3149
原创 windows下安全的创建子进程
#include int main(){ STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi; TCHAR szCommandLine[] = TEXT("c://o//yes"); SetErrorMode( SEM_NOGPFAULTERRORBOX ); BOOL bCreateRet = Create
2008-10-10 17:35:00
6492
原创 用命名内核对象防止windows同时运行两个程序
利用创建命名内核对象的方法可以防止同时运行程序,由于可能其他人写的程序用的命名会与自己的重复,所以建议采用唯一的GUID。以下代码根据《winows核心编程》整理。#include #include int main(){ HANDLE h = CreateMutexW(NULL, FALSE, L"{FA531CC1-0497-11d3-A180-00105A276C3E}"); i
2008-10-09 11:19:00
2896
原创 编程习惯:提供内存分配的成对原则
读《windows核心编程 4ed》(Jeffrey Richter 著 黄陇、李虎 译)后的笔记开发人员可能会犯这么一个错误:提供申请内存空间的函数,却没有提供对应的释放空间的函数,而是寄希望于用户(程序员)通过标准释放方式来解决问题。如以下代码:VOID EXEFunc(){ PVOID pv = DLLFunc(); free(pv);}PVOID DLLFunc(){
2008-09-25 12:17:00
2402
原创 windows错误码返回文本信息的封装类
写个实用的小类,用于输出win的错误码文本信息,因为直接使用FormatMessage确实会繁琐一点。所以将类设计成函数对象的形式。默认以英文、方式输出,省去了自己设定语言类别的麻烦。当然自己可以设定语言类别(参看MSDN)。/// 声明/*** @author roofalison* @date 2008-09-24-14:03* @class windows错误码显示
2008-09-24 21:41:00
2742
原创 慎用C++ std::map 的[]运算符
map的[]运算符在用法上和我们对[]常规理解大有出入,因此也往往很容易造成了使用上的失误,在这点上我强烈认为stl设计犯了大错。首先看其函数声明:T& operator[] ( const key_type& x );在 http://www.cplusplus.com/reference/stl/map/operator[].html 的描述中,该声明等效于:(*((this->insert(
2008-09-18 13:48:00
9045
2
原创 对集合中元素,求是否存在两个元素之和大小为X的两种做法
一、二分法 步骤:1、将集合元素拷贝到数组A(在这里假设集合元素非随机存储)2、对A进行排序3、遍历A[1..N-1],对A[i+1..N]元素进行二分查找,查找元素为X-A[i] 二、哈希法步骤1、初始化哈希表为空2、遍历A[1..N],对于A[i],在哈希表中查找是否存在X-A[i],若否,将A[i]加入哈希,若是,返回TRUE
2008-07-29 23:12:00
2527
原创 排序算法代码---归并排序
#include void mergeSort(int A[], int len);void show(int A[], int len);int main(){ int A[] = {1, 3, 2, 5, 7}; int len = 5; mergeSort(A, 5); show(A, 5); return 0;}// A[p..q]和A[q+1.
2008-07-12 00:11:00
2223
2
原创 排序算法代码---插入排序
#include void insertionSort(int A[], int len);void show(int A[], int len);int main(){ int A[] = {1, 3, 2, 5, 7}; int len = 5; insertionSort(A, 5); show(A, 5); return 0;}void inse
2008-07-11 23:13:00
3600
原创 查找链表倒数第N个结点的地址(C++)
/**//* * Author : roof */#include stdio.h>template typename Elm>struct Node ...{ Elm elm; Node* next;};template typename Elm>NodeElm>* lastPos(NodeElm>* head, int num) ...{ if (num 0)
2008-03-18 13:46:00
2429
原创 我的AVL树代码实现(欢迎测试)
#include iostream>using namespace std;template typename T>class AVLNode ...{public : AVLNode() : bal(0), height(0), lch(0), rch(0), par(0) ...{ } AVLNode(const T& oelm) : bal(0), height(
2008-03-16 20:39:00
3218
2
原创 (深信服笔试题)简单文本文件的过滤高频率单词C++代码
这是深信服的一道笔试题,即要求扫描一文本文件,将出现频率最高的单词过滤。所以自己也写了个代码。本代码没有做“单词测试”,即没有测试是否一个字符串是一个单词。题目没有要求针对相同频率单词的处理情况,所以我没有针对这个做处理,有兴趣的朋友可以自立要求。 #include #include #include using namespace std;void clr_frc(string sr
2008-03-09 08:07:00
4288
1
原创 Note of 《thinking in java》6
6.类的重用1. 所有的类都有一个toString方法。2. 后期的初始化:在载入一个类时,将所有成员都初始化为完整的对象可能会导致载入负担过大,在这种情况下应使用后期初始化:即当一个对象第一次被使用时才将它初始化。(不过这就不叫初始化了吧???)3. 在Java中,Object类是所有类的祖先。4. 你可以在每个类中添加一个publ
2008-02-20 23:35:00
1121
原创 Java中实现C++中的enum
以下是我开通的JAVA论坛,欢迎光临^_^http://groups.google.com/group/roofalison/browse_thread/thread/ecd6ca274fdcab8e 感谢Nubix提醒我,原来Java已经有enum了,可能我手头的书和编译器是基于1.4的,没有看到,呵呵,不过下面的东西看看无妨。 C++里的enum有两个特性: 1、静态、常量特性。 2、类型检查
2008-02-14 14:33:00
2656
1
原创 Java中final的用法总结
1. 修饰基础数据成员的final这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改。如java.lang.Math类中的PI和E是final成员,其值为3.141592653589793和2.718281828459045。2. 修饰类或对象的引用的final在Java中,我们无法让对象被修饰为
2008-02-10 17:52:00
39169
15
原创 Note of 《thinking in java》5
5. Hiding the Implementation A primary consideration in object-oriented design is "separating the things that change from the things that stay the same." There can be only one public clas
2008-02-05 13:19:00
1876
原创 Note of 《thinking in java》3
3. Controlling Program Flow An rvalue is any constant, variable, or expression that can produce a value, but an lvalue must be a distinct, named variable. Whenever you manipulate an objec
2008-02-05 13:18:00
1080
原创 Note of 《thinking in java》4
4. Initialization & Cleanup If Tree(int) is your only constructor, then the compilor wont let you create a Tree object any other way. Each overloaded method must take a unique list of ar
2008-02-05 13:18:00
844
原创 Note of 《thinking in java》2
(2). Everything is an object String can be initialized with quoted text. There are six different places to store data: registers, the stack, the heap, static storage, constant storage, no
2008-02-05 13:16:00
625
原创 Note of 《thinking in java》1
Introduction Thinking about designed, not simply coding.(1). Introduction to object Thinking of an object as a service provider. In a good object-oriented designed design, each
2008-02-05 13:15:00
1004
原创 你的选择:学习的不同境界--转自《开复学生网》
我把学习的境界由低到高分为五个层次。http://www.5xue.com/modules/wordpress/?p=637 2007/10/29 — 小宁 (阅读: 1521)1. 学会答案。2, 学会方法 。3. 学会学习。4. 学会做事。5. 学会做人 例如,老师教你个软件的快速排序算法,你学会了,你记住了,你能用它去写排序程序,你学会了这个答案。你到了学习的第一层境界。快速排序
2007-12-05 15:51:00
845
原创 C++类模板:模板内的typename名字将屏蔽模板外部的名字
// 类模板中的类型名字可以屏蔽定义外部的名字 #include iostream>#include string>using namespace std;// 模板外部对double起了个类型别名T typedef double T;template typename T>void show(const T& t)...{ // 模板内部的T已经不是外部那个double别名T
2007-11-09 12:27:00
1165
1
原创 KMP算法学习
/* 字符串匹配算法 第二个算法:KMP匹配法 函数名:str_match*/#include#include#define MXLEN 100/* strs为主串,strp为模式串 若不存在匹配,则返回-1*/int str_match(const char* strs, const char* strp);int main(){ char strs[MXLE
2007-07-09 21:22:00
748
迅雷2008实习生C++笔试题
2008-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人