随笔分类 -  C++

摘要:所谓快速多通道积分图计算,其实就是 cumsum2D。我写了一个比较快的版本(比 VLFeat 的快),用 mex 编译一下就能用了。## 代码```cpp#include #include #include #include // compute integral imagetemplate vo... 阅读全文
posted @ 2015-04-05 22:50 何磊 阅读(1038) 评论(0) 推荐(0)
摘要:C++中的智能指针shared_ptr的原理和应用 阅读全文
posted @ 2014-03-01 01:54 何磊 阅读(6247) 评论(1) 推荐(4)
摘要:C++ 中的奇技淫巧大部分来源于模板技术,尤其是模版元编程技术(Template Meta-Programming, TMP)。TMP 通过将一部分计算任务放在编译时完成,不仅提高了程序的性能,还能让程序获得一些用常见语法结构无法实现的功能。在这里,我总结了几个利用 TMP 实现静态反射的例子,这些功能得益于模板的特化或模板实例化时的 SFINAE 行为。(代码默认包含 头)1. 类型判定#define MakeIsType(Tp) \template \class Is_##Tp { \public: \ enum {value = false}; \}; \template \... 阅读全文
posted @ 2013-11-27 16:28 何磊 阅读(1970) 评论(5) 推荐(1)
摘要:一个能够在 Qt 中显示 OpenCV 图片控件源代码。 阅读全文
posted @ 2013-11-17 23:14 何磊 阅读(3592) 评论(0) 推荐(0)
摘要:C++ 临时对象的生存周期是一个不小的坑,参考 C++ standard 第十二章第二节,总结其规则如下:基本原则:临时变量生存到其所在的完整表达式执行完毕之后(若作为函数参数,则以函数所在的完整表达式为准)。若其绑定到一个 const 引用上,则它将生存周期将被扩展到和该 const 引用一致,但是不会接着传递到另一个 const 引用。ctor-initializer 中的临时变量生存到构造函数结束。如果临时变量是以函数返回值的形式绑定到 const 引用上,则结果是 undefined 的。(这里和第二条不一样) 阅读全文
posted @ 2013-10-27 21:43 何磊 阅读(549) 评论(0) 推荐(0)
摘要:1.多维数组的数据类型:首先,数组是数组,指针是指针,数组名不是指针。不解?正常。不少C语言老师常常告诉学生:“数组名就是指向数组首元素的指针。”这句话只说对了一半,数组名的确可以当作指针使用,在不少的场合,数组名会被隐式地转换为指针(这种转换叫做退化,另一种退化发生在函数到函数指针的转换中)。但是数组不是指针,对于一个数组,int a[5],它的类型是int [5],能退化为int*类型,数组int b[5][4],它的类型是int [5][4],能退化为int (*)[4]类型,也就是说,它们能被隐式地转换为将它们看作一维数组时的首元素的指针。2.多维数组的指针既然数组有自己的数据类型(上 阅读全文
posted @ 2013-10-27 21:24 何磊 阅读(586) 评论(0) 推荐(0)