上一页 1 2 3 4 5 6 7 ··· 18 下一页

2012年7月13日

避免应用程序抢夺焦点窗口

摘要: 最近老碰到当前窗口被抢焦点,却不知道是哪个程序抢了焦点,找到了这一篇文章:避免应用程序抢夺焦点窗口【7/15/2004 10:19:52】【Serdar Yegulalp】 【TechTarget】 “焦点”(Focus)是用来描述那些当前启用的可以从键盘上输入或选择菜单的应用程序。当你切换一个窗口,那个窗口就是焦点窗口。 有些应用程序喜欢抢夺程序焦点。如果你急于完成工作,但是有一个应用程序不断的从你需要工作的窗口抢夺焦点,这可真是一件烦人的事情。 为了解决这个问题,你可以编辑注册表来更改系统处理应用程序焦点的方式。运行REGEDT32,来到 HKEY_CURRENT_USERContr... 阅读全文

posted @ 2012-07-13 10:44 能发波 阅读(523) 评论(0) 推荐(0)

2012年5月6日

实现了一个压缩算法,在数据高度压缩的前提下,还可以快速查找 key

摘要: 最近写了一个算法,可用于 (key,value) 存储,key 当然是 string 类型。用一个 2.3G 的 url 集合做测试,如果不计 value 占用的空间,key 集合的存储空间可以被压缩70倍!压缩后整个数据结构仅占31M内存!压缩率比 bzip2 还要高。本质性的不同于: gzip, bzip2 等压缩算法仅仅是压缩而已,无法快速地从压缩数据中查找。我实现的这个算法能高效地支持对 key 的查找,并且查找的时间复杂度仅与 key 的长度有关,不管数据集合有多大,时间复杂度总是 O(strlen(key))。实际数据:当 key 长度均值为 76 字节时(该 url 集合中所有 阅读全文

posted @ 2012-05-06 00:21 能发波 阅读(172) 评论(0) 推荐(0)

2012年4月11日

原地排序与链表翻转

摘要: 有这样一个问题:有个长度为 n 的 (key,val) 数组 a,其中 key 是 int 类型,并且其值在 [0, n) 之间(前闭后开,包括 0 不包括 n),该数组按 key 是乱序的,但没有重复 key。要求:对 a 原地按 key 排序,可以使用常数个临时变量,不允许使用其它额外空间,时间复杂度必须是O(n)我曾经写过另外一个问题:排列的分解(必须看),与此有点类似:但其实不同。本质的不同在于:那个问题是对循环链表逆时针旋转1个单位,而该问题是要对循环链表顺时针旋转1个单位。逆时针旋转很容易,因为是 forward copy。但是顺时针旋转需要 backward copy,对数组(更 阅读全文

posted @ 2012-04-11 10:57 能发波 阅读(236) 评论(0) 推荐(0)

2012年3月11日

C++ 中让对象的拷贝成为 显式 的

摘要: C++中对象的拷贝一般使用拷贝构造函数,从而对象的拷贝大多是隐式的,使用拷贝构造函数的隐式拷贝很方便,但是编译器无法识别不必要的拷贝,虽然我们人类可以识别这些不必要的拷贝,比如在写函数原型时,忘了加&,就会引发一个这样的非必要拷贝。如果这种情况很严重,我们可以禁用拷贝构造函数和赋值函数(声明成private),然后再提供一个显式拷贝函数,如:class HeavyObject { HeavyObject(const HeavyObject&); HeavyObject& operator=(const HeavyObject&);public: void clo 阅读全文

posted @ 2012-03-11 21:10 能发波 阅读(193) 评论(0) 推荐(0)

2012年3月9日

C++11: 使用 lambda 创建模板类 的 对象

摘要: C++ 中 lambda 可以直接传递给模板函数如 std::sort, 但无法传给模板类如 std::map,但是,使用一点小技巧,可以使用 lambda 创建模板类的对象,省了很多麻烦的 coding。这里给出一个示例:#include #include templatestd::map make_map(Compare comp) { return std::map(comp);}int main() { auto m = make_map([](int x, int y) { return x %d\n", x.first, x.second); } retur... 阅读全文

posted @ 2012-03-09 11:46 能发波 阅读(505) 评论(0) 推荐(0)

2012年3月5日

Recursive Lambda in C++

摘要: C++ 标准委员会真是太死板了,既然给 C++ 增加了 lambda,就真的按部就班地套用 lambda 的标准定义,也不加个 lambda的自引用机制。找了半天,除了那些学院派的足以把99%的人搞晕的 Fix Point + Y combinator,一个最实用的解决方案就是把 lambda bind 到 std::function.我那段需要 recursive lambda 的代码: void print_output() const { // use recursive lambda std::string str; std::function lambd... 阅读全文

posted @ 2012-03-05 18:43 能发波 阅读(185) 评论(0) 推荐(0)

2012年2月20日

一个很难的字符串问题

摘要: 问题描述:有 n 个 RegEx (正则表达式),标号从 0 到 n-1,n 可能很大 (比如说100万)给定一个字符串,返回能 match 这个字符串的所有正则表达式标号。用 C++ 来描述这个需求:class MultiRegEx {public: struct MatchResult { int nth; // regex NO. int beg; // begin of matched pos in text int end; // end of matched pos in text }; // return the ind... 阅读全文

posted @ 2012-02-20 19:07 能发波 阅读(131) 评论(0) 推荐(0)

2011年12月26日

m 分查找

摘要: 一个比较产生两个决策结果二-决策的计算机硬件实现更高效我们可以想象给一个 array, 一个 key, 在某台 god machine 上有一个操作:cmp-multi array, key, n, m它能在一个时钟周期内决策出 key 是落在 n-elem array 的 m 等分(最后一分要小点)的哪一份,那在这种情况下 m 分查找就比 2 分查找要快。实际上,B-Tree 的搜索可以看成是这样的一个 m 分搜索。 阅读全文

posted @ 2011-12-26 16:15 能发波 阅读(87) 评论(0) 推荐(0)

2011年12月24日

Name lookup take place before access control

摘要: class A { void f(int);public: void f(long); void f(double);};void g() { A().f(1L); // OK A().f(1.); // OK A().f(10); // error}Yes, "1." is a floating point number. 阅读全文

posted @ 2011-12-24 18:03 能发波 阅读(95) 评论(0) 推荐(0)

2011年12月3日

hash_strmap & gold_hash_map update

摘要: hash_strmap在不增加任何额外成本的情况下,string pool 中每个 string 消耗的内存,平均情况下,减少了一个字节。太不值一提。gold_hash_map计划新加功能: 使用 FreeList 管理已删除的元素,这样最大的好处是:即使有元素删除,所有未被删除的元素的 id(数组下标)都不会改变。这样,就可以把 id(数组下标)作为元素的永久标识,可以把这个 id 保存在别的地方,来直接访问 gold_hash_map 的元素。这个功能看上去比较简单,但接口设计和实现都还是有不少复杂度的。 hash_strmap 也可以实现这个功能,但是这样会在 string pool 中 阅读全文

posted @ 2011-12-03 10:14 能发波 阅读(135) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 18 下一页

导航