莫比乌斯带

阅读更多关于《莫比乌斯带》

在学校里,我学到的第一门编程语言,是 Mathematica,严格讲 Mathematica 也许不算是一门编程语言,但它的确很有趣。那个时候(1998年),Mathematica 还只是 1.2 (或者1.4,具体记不清了)了。学校机房的电脑也很慢,但是从那开始,我开始可以将自己的一些想象变成视觉,莫比乌斯带的方程式就是这样想象出来的: 继续阅读

Hadoop.MapReduce.简介

阅读更多关于《Hadoop.MapReduce.简介》

本文是2009年9月为公司内部培训写得的一篇简介。 继续阅读

hash_strmap 为什么那么快

阅读更多关于《hash_strmap 为什么那么快》

测试结果(普通PC,CPU 3G HZ,内存 2G)

  • 单核达到了每秒 30,000,000 次查询,string 长度是 32 字节,这个速度比 unordered_map 快10 倍,比 std::map 快40 倍。
  • iteration 的速度, 比 std::map 快 180 倍以上, 比 unordered_map 快 150 倍。

继续阅读

reverse_iterator

阅读更多关于《reverse_iterator》

stl 容器大都有 reverse_iterator, 用法跟 iterator 一样。然而,可能很少有人考虑过它的实现。

首先, reverse_iterator 大都由 std::reverse_iterator 包装 iterator 生成,如此,同样的遍历循环, 继续阅读

is_trivially_destructible replaced has_trivial_destructor

阅读更多关于《is_trivially_destructible replaced has_trivial_destructor》

C++11 中的 type_traits, 改变了一些约定成俗的名字:

我们经常使用的 has_trivial_destructor, 变成了 is_trivially_destructible, 现在已有不少编译器实现了 has_trivial_destructor, (std, std::tr1). 继续阅读

文章简介最多240个字符

阅读更多关于《文章简介最多240个字符》

忽然以前文章中有个笔误, 打算修改一下, 修改好了, 提交, 结果被提示:

文章简介最多240个字符, 你已经有输入了247个!

可我无论如何找不到 "文章简介" 的输入框! 难道是 IE Only 的?

HashMap<string, …> 能有多快

阅读更多关于《HashMap<string, …> 能有多快》

看到很多使用 map<string, ….> 的代码, 也有一些使用了 unordered_map<string, …> 或者 hash_map<string, …>, 当然, hash_map 不是标准的, unordered_map 也只在 boost, tr1 和 c++0x 中可用. 从代码的简洁性和可移植性上讲, 标准的 std::map 是首选. 继续阅读

怎样让C++函数重载时连返回值类型也加入重载决议?

阅读更多关于《怎样让C++函数重载时连返回值类型也加入重载决议?》

众所周知,C++函数重载时返回值是不参与重载决议的, 也就是说: 继续阅读

Large Number of Coroutine is possible: Split Stacks in GCC

阅读更多关于《Large Number of Coroutine is possible: Split Stacks in GCC》

本文来源:http://gcc.gnu.org/wiki/SplitStacks

注:GCC4.6 已经支持 -split-stack 选项。Why Fiber/Coroutine?  可参考我的相关文章:异步通讯中使用纤程(Fiber/UserSpaceThread) 继续阅读

排列的分解

阅读更多关于《排列的分解》

离散数学里面大家都学过群,群里面有种很基本并且很重要的叫做置换群,置换群的元素本质上就是一个排列(英文 permutation group, 直译过来应该是排列群)。大家应该都学过当初要把 (4 1 5 2 3) 分解成 (1 4 2)(3 5),这个叫做群的 k-cycle 分解,也就是说,一个排列(置换群的一个元素)可以 继续阅读