为什么模板元编程的效率反倒低下了——使用blitz的问题
最近学组合数学,做了一个关于生成gray码的习题,经典的算法我想不用多写了吧,
但是我观察了它的特点,任意大于2阶的n阶gray码,它的第一列总是上一半为0,下一半为1,而去掉第一列,剩下矩阵的上半部分总是n-1阶gray码,下半部分与之是经相对称的,如下:
为清晰,我把n阶gray码的矩阵分为两部分。
0, 0, 0
0, 0, 1
0, 1, 1
0, 1, 0
1, 1, 0
1, 1, 1
1, 0, 1
1, 0, 0
我认为这样的特点,正应适合用模板来解决,于是写了下面的程序,矩阵生成使用了blitz,可是测试效率,却几乎总是比经典算法慢了近50倍,不知是什么原因,恳请指教。下附程序