自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(221)
  • 资源 (5)
  • 收藏
  • 关注

原创 STL vector提高效率注意事项与技巧

Vector是STL中最常用的容器,比起用户自定义的数组,具有内存分配对用户透明,可动态增长等特点。vector什么操作导致效率低? 毫无疑问,那就是当vector 预留空间不足时 常用操作push_back()函数在每次插入元素时会检测预留空间是否够用push_back()时预留空间不够用:要重新分配内存,并且拷贝当前已有的所有元素到新的内存区域。如果已有元素很多,这个操作将变的非常昂

2016-01-14 07:57:33 4403

原创 栈的压入、弹出序列

栈的压入、弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 思路:(PS:记住是用一个辅助栈即可) 利用一个辅助栈 依次按压栈顺序压入辅助栈,辅助栈顶即为当

2016-01-12 08:11:54 481

原创 树的子结构

问题:输入两颗二叉树A,B,判断B是不是A的子结构。思考:1.首先需要递归pRoot1树,找到与pRoot2根一样的节点,这需要一个遍历2.找到相同的根节点后,要判断是否子树,仍需要一个一个遍历对比树的遍历我们一般就用递归来做,那么根据分析需要两个递归函数如下:bool IsSubtree(TreeNode*p1, TreeNode *p2){ if (!p2)

2016-01-09 09:54:53 441

原创 笔试题中 3种错误处理的方法

笔试题中 3种错误处理的方法一、 函数返回值:比如很多Windows API的返回值为0表示API调用成功,返回值不为零,表示该函数调用中出错了,不同的返回值对应不同的出错类型。优点:和系统API一致缺点:不能方便的使用返回值(因为返回值去表示是否出错了,如main()函数,最后return 0 一样)二、 设置全局变量此时我们可以在返回值中传递结果了,当出错时修改这个全局变量的值 eg.

2016-01-03 17:16:02 992

原创 C++位操作

C++位操作包括两种:传统的C语言方式的位操作C++中利用bitset容器的位操作一、传统的C方式位操作: 基本操作: 使用一个unsigned int变量来作为位容器。操作符: | 按位或操作符:result=exp1|exp2;当exp1和exp2中对应位中至少有一个为1时,result中对应位为1,否则为0。 & 按位与操作符::result=exp1&exp2;当exp

2016-01-03 09:50:15 470

原创 两个线程并发执行以下代码,假设a是全局变量,那么以下输出___哪个是可能的?

两个线程并发执行以下代码,假设a是全局变量,那么以下输出_哪个是可能的?int a=1;void foo(){ ++a; printf("%d",a);}解析假设线程x和y同时执行,x和y可随时被抢占,a的初始值为1A:3, 2 y先执行++a,a为2; y再执行printf,a入栈,在打印到终端之前切换到x x执行++a,a为3; x执行printf,输出3;再切换到

2015-12-28 08:38:09 10428 4

原创 c++变量的存储区域

c++变量的存储区域栈区(stack)— 由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。堆区(heap) — 一般由程序员分配释放, new, malloc之类的,若程序员不释放,程序结束时可能由OS回收 。全局区(静态区)(static)— 存放全局变量、静态数据、常量。程序结束后由系统释放。文字常量区 — 常量字符串就是放在这里的。程序结束后由系

2015-12-28 08:32:49 563

原创 左旋转字符串 (可能不是你想的那么简单)

左旋转字符串题目:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。 方法一:无脑方法,根本不是题目的考察方向 思路: 逐个字符处理,先把n~length,保存在一个串res中,再

2015-12-23 07:44:38 538

原创 把字符串转换成整数 (用位操作)

把字符串转换成整数问题: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。方法一(自己写的直白的方法,抛砖引玉)class Solution {public://char转换成intint CharToInt(char c){ int res; res = c - '0'; if (res<0 || res>9) return 0;

2015-12-20 09:58:17 790

原创 翻转单词顺序列

翻转单词顺序列 问题: 来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? 方法一:

2015-12-18 08:06:13 389

原创 STL stack、queue 操作整理

STL stack、queue 操作整理 STL 的一大好处是stack和queue之间可以直接赋值,交换(swap),不用像自己用数组实现,逐元素操作(因为数组间复制只能逐元素复制)stack & queue 简单介绍几个: 1. operator = 说明可以同类型间赋值操作 2. swap() 操作是交换两个同类型的对象,eg: q1.swap(q2);//

2015-12-16 08:57:47 732

原创 斐波那契数列 题集

斐波那契数列 题集 很多题分析到最后都是斐波那契数列了,这里就总结下因为斐波那契数列很好求,我们就值分析不给代码了。 PS: 1. 斐波那契数列可以用递归求,也可以非递归实现,一般我们用非递归的实现,更加高效 2. 注意初始值: 在题目中:f(0) = 0, f(1) =1, f(2) =2 ; 而原始的斐波那契数列中:f(2) =1 所以在题目中,n =1,和 n=2

2015-12-16 07:39:04 738

原创 跳台阶 && 变态跳台阶 (递归和非递归)算法整理

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution {public: int jumpFloor(int number) { if(0 >= number) return 0; else if(1 == number) return 1;

2015-12-14 07:28:57 1753

原创 VS 统计整个项目总的代码行数

VS 统计整个项目总的代码行数vs如何快速统计项目总代码行数呢,如下: vs编辑 | 查找和替换 | 在文件中查找 查找选项选 选择正则表达式 ^b*[^:b#/]+.*$ 设置如下: 结果在查找结果的最后一行,如下

2015-12-07 09:08:45 31673

原创 openMP(并行计算) 超简单快速上手

简介:OpenMp是并已被广泛接受的,用于共享内存并行系统的多处理器程序设计的一套指导性的编译处理方案。OpenMP支持的编程语言包括C语言、C++和Fortran;OpenMp提供了对并行算法的高层的抽象描述,程序员通过在源代码中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。当选择忽略这些pragma,或者编译器不支持OpenM

2015-12-06 21:29:30 6488

转载 c++操作符优先级表格 + 记忆方法整理

优先级操作符描述例子结合性1()[]->.::++--调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作用域操作符后置自增操作符后置自减操作符(a + b) / 4;array[4] = 2;ptr->age = 34;obj.age = 34;

2015-12-06 10:29:28 581

原创 VS2013 加快编译速度 的方法整理

VS2013 加快编译速度 的方法整理1.更改项目设置项目|属性|C/C++|代码生成|启用最小重新生成:Yes(/Gm)项目|属性|C/C++|常规|调试信息格式:程序数据库(/Zi)项目|属性|配置属性-链接器-常规-“启用增量链接”选择“是”2.使用多核编译Properties -> Configuration Properties -> C/C++ -> Geneal -> Mul

2015-12-04 15:19:46 11538 2

原创 xml 文件介绍

首先要明确的是:XML是被设计用来存储数据、携带数据和交换数据的,它不是为了显示数据而设计的。保存数据,交换数据 XML用于交换数据,通过XML,我们可以在不兼容的系统之间交换数据。在现实生活中,计算机系统和数据库系统所存储的数据有N^N种形式,对于开发者来说,最耗时间的就是在遍布网络的系统之间交换数据。把数据转换为XML格式存储将大大减少交换数据是的复杂性,并且还可以使得这些数据能被不同的程序

2015-12-02 21:22:18 534

原创 什么是特征向量,特征值,矩阵分解

真的觉得考研白考了,线性代数只学了公式,意思完全不懂,其实到了研究生阶段,高数等知识只是一个工具,要明白意思才能使用自如,哎,后悔啊。1. 特征的数学意义我们先考察一种线性变化: 例如x,y坐标系的椭圆方程可以写为x^2/a^2+y^2/b^2=1,那么坐标系关于原点做旋转以后,椭圆方程就要发生变换。我们可以把原坐标系的(x,y)乘以一个矩阵,得到一个新的(x’

2015-12-02 07:29:45 3890

原创 (c++) int 转 string,char*,const char*和string的相互转换

一、int 和string的相互转换1 int 转化为 stringc++ //char *itoa( int value, char *string,int radix); // 原型说明: // value:欲转换的数据。 // string:目标字符串的地址。 // radix:转换后的进制数,可以是10进制、16进制等。 // 返回指向string这个字符串的指针

2015-11-26 15:02:53 9703

原创 Opencv 特征点检测 整理(Harris,FAST,SIFT , SURF等总结)

一、Harris角点 角点是图像中最基本的一种关键点,它是由图像中一些几何结构的关节点构成,很多都是线条之间产生的交点。Harris角点是一类比较经典的角点类型,它的基本原理是计算图像中每点与周围点变化率的平均值。二、FAST角点 harris特征在算法复杂性上比较高,在大的复杂的目标识别或匹配应用上效率不能满足要求,OpenCV提供了一个快速检测角点的类FastFeatureDetect

2015-11-25 20:42:30 6677

转载 opencv里 函数参数类型: InputArray和OutputArray 解读

概述InputArray和OutputArray两个类都是代理数据类型,用来接收Mat和VectorInputArray作为输入参数的时候,传入的参数加了const限定符,即它只接收参数作为纯输入参数,无法更改输入参数的内容。而OutputArray则没有加入限定符,可以对参数的内容进行更改。 InputArray使用一系列的数据类型作为输入实例化自身,通过设定一系列的构造函数来实

2015-11-22 21:29:12 8209

转载 C++文件 读写操作大全

在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plaincopyprint?#include   ofstream         //文件写操作 内存写入存储设备   ifstre

2015-11-18 10:29:45 645

原创 opencv 矩阵操作大全

一、矩阵Mat I,img,I1,I2,dst,A,B;double k,alpha;Scalar s;1.加法I=I1+I2;//等同add(I1,I2,I);add(I1,I2,dst,mask,dtype);scaleAdd(I1,scale,I2,dst);//dst=scale*I1+I2;2.减法absdiff(I1,I2,I);//I=|I1-I2|;A-B;A-s

2015-11-18 08:43:40 658

原创 各种图片格式(BMP,JPG, GIF,PNG, TGA) 简单介绍

BMP格式: Windows系统下的标准位图格式,未经过压缩,一般图像文件会比较大。在很多软件中被广泛应用.所以编程的时候用opencv,是不是首先应该考虑BMP格式会比较好,因为看到很多大神的源代码也都是用的这个格式JPEG格式: 也是应用最广泛的图片格式之一,它采用一种特殊的有损压缩算法,将不易被人眼察觉的图像颜色删除,从而达到较大的压缩比(可达到2:1甚至40:1),因为JPEG格式

2015-11-17 10:23:48 9631

原创 VS2013等版本中怎么写函数注释可以鼠标悬停自动显示

项目里代码多了,鼠标一指哪个函数就能有注释是比较方便的,但是我写了半天注释,鼠标怎么点也不自动显示,就查了下写在这里给需要的人参考下。方法如下: 注释要写在函数实现的地方,才可以自动显示(我都是写在声明里了。。。。。)注释的格式如下: //注释 void test(xxx) 就是注释写在函数上边即可。 小白互相学习进步!

2015-11-15 10:26:52 6360

原创 openCV坐标系与row&col的关系 (Mat::at(x,y)和Mat::at(Point(x, y))的区别)

直接给出对应关系吧注意都是相反的 row == heigh == Point.y col == width == Point.x Mat::at(Point(x, y)) == Mat::at(y,x) 因为还有点的坐标,所以建议在访问时都用Mat::at(Point(x, y))这种形式吧,免去了点坐标和行列的转换补充(详细解释)坐标体系中的零点坐标为图片的左上角,

2015-11-10 08:21:24 13888

原创 for循环用效率分析(++和--时效率的差异分析)

(听别人说的面试中问过的一个问题,记不清了,如有偏差希望大家补充纠正) 问题:完成相同的功能,for循环使用++和–哪个效率更高?通常我们在编写需要for循环实现的程序时有两种实现方法:for(int i = 0;i<arr.length;i++)for(int i = arr.length-1;i>=0;i--)分析: 结论:通常来讲第2种用–的方法效率更高 原因如下:

2015-11-10 07:56:22 4901 1

原创 两个链表的第一个公共结点

两个链表的第一个公共结点 问题:输入两个链表,找出它们的第一个公共结点。方法一 思路:常规想法:找出2个链表的长度,然后让长的先走两个链表的长度差,然后再一起走(因为2个链表用公共的尾部)这是我我自己写的code/*struct ListNode { int val; struct ListNode *next; ListNode(int x) :

2015-11-02 08:44:46 452

原创 数组中出现次数超过一半的数字

问题:数组中出现次数超过一半的数字 题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 方法一 思路:直白的想法,先排序,然后判断前一半的数,看其中有没有一个数k,等于他后边half位置之后的数,有则返回数k,无则返回0

2015-11-01 08:53:59 486

原创 最小的K个数 (冒泡和最小堆)

问题:最小的K个数 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 - 方法一(冒泡排序k趟) 思路:冒泡排序进行k趟即可,就把最小的k个跳出来了class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> inp

2015-10-31 08:54:05 620

原创 数字在排序数组中出现的次数 (递进的方法整理)

问题: 统计一个数字在排序数组中出现的次数 方法一 思路:最直白简单无脑的解法:从头遍历一遍数组,等于k时,count++ class Solution {public: int GetNumberOfK(vector<int> data ,int k) { int count = 0; for(int i = 0;i<data.

2015-10-29 09:02:05 550

原创 (经典的异或技巧)数组中只出现一次的数字 (两种方法)

数组中只出现一次的数字 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 方法一: 采用异或运算 (算是标准的思路吧) 思路: 此题考察的是异或运算的特点:即两个相同的数异或结果为0。 此题用了两次异或运算特点: (1)第一次使用异或运算,得到了两个只出现一次的数相异或的结果。 (2)因为两个只出现一次的数肯定不同,即

2015-10-27 10:38:21 6808

原创 反转单链表 (三种方法整理)

题目:反转单链表 输入一个链表,反转链表后,输出链表的所有元素。 据找工作的师兄说,反转单链表基本各个公司面试都会有,整理出一些写的比较好的code,供我等小白们学习。简洁,清晰,我觉得写得蛮好的。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) :

2015-10-26 21:15:23 48870 6

原创 程序设计中的 短路特性(逻辑运算而已)

今天刷题的的时候,看到讨论里有人用短路特性实现递归终止,觉得好高大上,我是个小白,还请见谅,那么就学习了下什么叫短路特性?短路特性包括(短路现象常见的有) : 短路与(&&)和短路或(||)>若a && b ,如果a 的值为假,则整个表达式的值就为假,它是从左向右计算的。所以执行该表达式后,b 的值还是它的初始值,即不进行运算。 例如:(m=a>b)&&(n=c>d),当a b c d 分别

2015-10-26 11:12:16 1306

原创 Iplimage 与 Mat 间的转换

将Mat转换为IplImage //! converts header to IplImage; no data is copied operator IplImage() const; 例如:Mat img;IplImage *src;src=&IplImage(img); 将IplImage转换为Mat //! converts old

2015-10-23 21:30:51 1729 1

原创 深入探讨 如何高效找素数

找素数是编程题中比较基础的一个题目,但要深入研究,其中还有很多门道,下面就稍微深入的研究一下: 最常规的方法 只是不从2-n,而简化成从2-sqrt(n),减少计算量,代码如下 bool is_prime(int n) { if(n1) return false; for(int i = 2;i

2015-10-22 09:54:42 594

转载 C++ STL :stack & queue 常用操作

1. stack stack 模板类的定义在头文件中。 stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要 的,在不指定容器类型时,默认的容器类型为deque。 定义stack 对象的示例代码如下: stack s1; stack s2;stack 的基本操作有: 入栈,如例:s.push(x); 出栈,如例:s.pop();注意,出栈操作只是删除

2015-10-20 08:49:01 841

原创 芝诺悖论:“人永远追不上乌龟” p.s.飞箭不动悖论

markdown 写的第一篇文章

2015-10-19 22:05:49 5001

原创 STL Vector 常用操作整理(比较全面易懂的整理)

用法:前半部分是基础的常用操作,后边是参考来得完整的介绍 1.文件包含:             #include          using namespace std;   2.声明向量:               2.1  一维数组,例:vector a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。          

2015-10-18 10:11:06 3129 1

Wing IDE 破解文件

Wing IDE 破解文件,获取注册码的脚本

2015-08-31

numpy-1.8.1-win32-superpack-python2.7

使用opencv的一个必须装的库,参考博客文章使用

2015-08-21

glut库文件

openGL 必备的库文件,自己已经在用了

2015-04-21

《Color Transfer Based on Normalized Cumulative Hue Histograms》代码实现

《Color Transfer Based on Normalized Cumulative Hue Histograms》代码实现,之前那个使用时有个小问题的,已修改,并增加了使用说明文档

2015-04-16

opencv 摄像机标定程序 已调试成功 附带畸变图片

课程大作业要求实现张正友的摄像机标定,opencv中有现成的函数.opencv自带的sample不太好调试,这个比较简单,但足以说明摄像机标定的过程

2014-11-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除