
C
文章平均质量分 56
Sean_SJTU
研究兴趣模式识别、机器学习、数据挖掘。
展开
-
opencv图像原地(不开辟新空间)顺时旋转90度
前一阵朋友碰到这么一道题:将图像原地顺时针旋转90度,不开辟新空间。此题看似平易(题目简短),仔细研究发现着实不容易。经过一番探索后,终于找到了正确的算法,但是当使用opencv实现时,有碰到了困难而且费了一番周折才找到问题所在。首先,解决这个问题,先简化成原地90度旋转一M×N的矩阵A(注意不是N×N方阵)。对于2×3的矩阵A = {1,2,3;4,5,6},其目标为矩阵B = {4,1;5,2;6,3}。因为是原地旋转,这里A和B应指向同一大小为6的内存空间。这里有这样一个重要的导出公式,就是原创 2015-01-29 21:18:29 · 5472 阅读 · 4 评论 -
C++遍历文件夹下所有文件
为数不多的好用的代码,遍历文件夹获取所有子文件名,"filespec"可用通配符“*?”。注意如果用相对路径的话,获取所有文件名后应再调用SetInitDir将初始目录改为当前目录,否则中间生成的文件都会放在之前的“InitDir”内。 C/C++遍历文件夹感觉真是很不好用,建议还是使用C/C++做单任务处理,然后通过脚本语言实现遍历比较合理。CBrowseDir.h转载 2015-01-29 16:01:54 · 2399 阅读 · 0 评论 -
32/64位平台printf uint64的方法
在32位平台 typedef unsigned long long int uint64_t;在64位平台 typedef unsigned long int uint64_t;不同的typdef,要求在printf中使用不同的length modifier,uint64_t 在32位使用ll,在64位使用l。除了定义数据类型,C99还定义了相应数据类型的打印方式,使用PRIu64打转载 2014-11-02 16:49:33 · 2258 阅读 · 0 评论 -
C++类构造优化 - 不调用拷贝构造函数
假如有下面这样一个类:class A{public: A(int p, char q):x(p), c(q){ cout << "constructor called" << endl; } A(const A& a){x = a.x; c = a.c; cout << "copy constructor called" << endl;}~A(){cout << "destruc原创 2014-09-28 00:38:15 · 2181 阅读 · 1 评论 -
C++编译程序占用内存分为哪几部分
一个由 C/C++ 编译的程序占用的内存分为以下几个部分 1 、栈区( stack ) — 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2 、堆区( heap ) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由 OS 回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3 、全局区(静态区)( sta原创 2014-06-13 11:48:24 · 1481 阅读 · 0 评论 -
skiplist 跳表详解及其编程实现
skiplist介绍跳表(skip List)是一种随机化的数据结构,基于并联的链表,实现简单,插入、删除、查找的复杂度均为O(logN)。跳表的具体定义,请参考参考维基百科 点我 , 中文版 。跳表是由 William Pugh 发明的,这位确实是个大牛,搞出一些很不错的东西。简单说来跳表也是链表的一种,只不过它在链表的基础上增加了跳跃功能,正是这个跳跃的功能,使得在查找转载 2014-06-04 11:25:05 · 954 阅读 · 0 评论 -
C和C++中泛型编程 - 适应不同类型参数的函数
首先一个简单的问题,如何实现交换两个整数的值? 想必每个有编程经验的人都能作答。C语言用指针实现如下:void swap(int * a, int * b){ int tmp = *a; *a = *b; *b = tmp;}C++可以使用引用实现如下:void swap(int & a, int & b){ int tmp = a; a原创 2014-05-19 21:34:27 · 5136 阅读 · 0 评论 -
C++中二维数组作为函数参数
首先二维数组有如下两种定义方式: A. int Arr[2][3]={{1,2,3},{4,5,6}}; B. int **Arr=new int* [2];for(int i=0;i<2;i++) Arr[i]=new int[3];//initializefor(int i=0;i<2;i++) for(int j=0;j<3;j++)原创 2014-01-04 17:53:39 · 2666 阅读 · 0 评论 -
C风格字符串动态分配和撤销内存报错的问题
Definition:C风格字符串即是以‘\0’结尾的字符串(非string类型)。其生成方式有如下3种: char A[10]={'a','b','\0'};//显式定义 char A[10]="ab"; //隐式添加‘\0'定义 char *A="ab";//隐式添加‘\0'定义从上面可以看出,C风格字符串定义有基于字符数组(1和2)和基于字符指针(3)两种定原创 2013-12-13 23:03:14 · 1179 阅读 · 0 评论