- 博客(19)
- 资源 (8)
- 收藏
- 关注
原创 dup/dup2函数的用法
系统调用dup和dup2能够复制文件描述符。dup返回新的文件描述符(没有用的文件描述符最小的编号)。dup2可以让用户指定返回的文件描述符的值,它通常用来重新打开或者重定向一个文件描述符。函数原型如下:#include <unsitd.h>int dup(int oldfd);int dup2(int oldfd, int newfd);dup和dup2都是返回新的文件描述符,如果出错,返回-
2015-04-03 16:49:11
1149
原创 functools模块
python中,functools模块文档在http://docs.python.org/library/functools.html。这个模块定义了一下函数:1.functools.reduce(function, iterable[, initializer])这个函数和python中reduce函数一样。>>> l = [1, 2, 3, 4, 5]>>> redu
2015-04-02 15:08:52
677
转载 RAII惯用法:C++资源管理的利器
RAII惯用法:C++资源管理的利器RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition IsInitialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。我记得第一次学到RAII惯用
2011-11-28 08:48:12
453
转载 裘宗燕:C/C++ 语言中的表达式求值
经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5:a = 4; cout C++ 不是规定 要弄清这些,需要理解的一个问题是:如果程序里某处修改了一个变量(通过赋值、增量/减量操作等),什么时候从该变量能够取到新值?
2011-11-02 08:59:18
504
转载 leftnoteasy:决策树模型组合之随机森林与GBDT
前言:决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等。但是同时, 单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够
2011-10-11 11:26:06
854
原创 OpenCV中行人检测
在OpenCV2.3.1中,有完整的行人检测代码,在samples\cpp\peopledetect.cpp中,使用了HOG特征,代码如下:#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/objdetect/o
2011-10-11 11:18:22
5675
2
原创 C/C++中,数组名和指针的区别
我从本科开始学习C语言到现在读研究生,一直认为数组名等同于指针。无论我的C语言老师在课堂上讲,还是阅读国内的那些C语言教材,给我的理解就是:数组名就是指针。它们的区别就是:数组名是一个常量指针,不可以修改其值;而指针可以任意修改值,指向不同的地方。这几年来,我也一直把数组名当做指
2011-09-26 10:55:31
998
2
原创 Android中使用OpenCV
由于项目的关系,需要在Android中使用OpenCV。网上也有很多相关的博文,但由于版本等问题,按照他们的步骤并不能顺利的完成环境的配置。我自己也尝试摸索了几天,现在将我在配置中遇到的问题,陈列出来,希望能给他人有些帮助。首先需要搭建NDK环境。需要安装Eclips
2011-09-21 08:47:32
1982
4
转载 pkg-config与LD_LIBRARY_PATH
最近遇到的几个问题, 都和LD_LIBRARY_PATH有关, 想整理一篇心得, 但发现一片比较好的介绍文章, 就不再赘笔了。一、编译和连接一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在
2011-09-01 09:10:32
534
原创 计数排序
算法思想:对每一个输入元素x,确定小于x的元素个数。有了这一信息,就可以把x直接放到它在最终输出数组的位置上。例如有17个元素小于x,则x就属于第18个输出的位置。 算法代码:#filename Counting_Sort.py 计数排序def Counting_Sort(SrcArray, k): length = len(SrcArray) #C用来Sr
2011-06-30 19:43:00
358
原创 快速排序
算法思想: 像归并排序一样,快速排序也是基于分治模式的。对于一个子数组A[p..r]排序的分治过程有如下3个步骤:分解:数组被划分成两个子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中的元素都小于等于A[q],而且,小于等于A[q+1..r]中的元素。下标q也在这个划分过程中进行计算。解决:通过递归调用快速排序,对子数组A[p..q-1]和A[q+1..r]排
2011-06-30 08:39:00
447
原创 堆排序
算法思想: 堆:数据结构是一种数组对象,它可以被视为一种完全二叉树。Length[A]是数值中元素的个数,heap-size[A]是存放在A中堆的元素个数。就是说,A[1...heapSize[A]]中的元素属于堆,其后面的元素不属于堆。 大顶堆:除了叶子节点外,每个父节点的值均大于左右子节点的值。小顶堆类似。 堆排序时,首先需要将输入数组构造成一个最大堆:如代码中Build_MaxHeap函数。
2011-06-28 19:52:00
469
2
原创 归并排序
算法思想:归并算法采用分治策略:将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些问题,然后再合并其结果,就得到原问题的解。分解:将n个元素分成各含n/2个元素的子序列;解决:用归并排序法对两个子序列递归地排序;合并:合并两个已排序好的子序列以得到排序结果。在对子序列排序时,其长度为1时递归结束。单个元素视为是已排好序的。 算法代码:#filena
2011-06-18 11:30:00
421
原创 插入排序
算法思想:插入排序的工作机理与很多人打牌时,整理手中牌时的做法差不多在开始摸牌时,我们左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要求它与手中已有的每一张牌从右到左地进行比较。无论什么时候,左手中的牌都是排序好的,而这些牌原来都是桌上那些牌里最顶上的一些牌。 算法代码:(使用Python语言)#filen
2011-06-18 10:41:00
467
原创 C++变量在栈上的布局
在笔试、面试中,经常有这样的题目:double a = 2.2;int b = *(int *)&a;问b的值是多少?在C++中,double型变量占8个字节,int型变量占4个字节。所以b的值,就是a中的4个字节构成的整数值。这样,我们如果知道a在内存上如何存放,就可以得到b的值。数据的存放,根据CPU的不同,有大端和小端方式。Intel的CPU使用的是小端方式,即:低位数据放在低地址,高位数据放在高地址。在栈上,分配方式为地址递减,即:先定义的变量,放在高地址出,后定义的变量放在低地址处。举例说明:
2011-05-16 16:45:00
891
原创 头文件中只有结构的预先声明,未有定义
我在头文件中,预先声明了一个结构,结构的定义在cpp文件中。头文件定义如下:#ifndef _TEST_H#define _TEST_H#endifstruct myTest;class testClass{ int a; myTest b;// myTest *b;}; 我在类中,定义了一个该结构的成员变量,编译有错误:该结构未定义。换成指针类型就可以了,如注释的语句。为什么会出现该问题呢?在网上查了一些相关内容,是说结构myTest没有定义,就不知道该
2010-12-31 09:25:00
991
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人