自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

自由理想的足迹

只要功夫深,铁杆磨成针

  • 博客(26)
  • 资源 (10)
  • 收藏
  • 关注

转载 简单的JPEG解码程序

转载自:http://blog.csdn.net/lpt19832003/article/details/1713708// JPGFile.cpp : Defines the entry point for the console application.//#include "stdafx.h"// simplejpeg.cpp : Defines the entry p

2015-04-30 08:20:05 2850 2

原创 递归函数的理解

前言:有很多复杂算法都包含了递归算法,特别是关于树形数据结构遍历的情景,所以正确深入理解递归算法是很有必要的。一、递归函数的基本概念递归函数机制理解:调用函数的静态和动态机制理解:调用函数和被调用函数虽然是同一个静态代码,但是运行时被函数运行的栈空间独立于调用函数的栈空间,调用点不同,函数状态栈地址也不同,所以运行时调用函数和被调用函数在代码副本还是数据副本上都是完全不同的,只有通过返回值和调用点进行联系。递归的调用形式:直接递归调用F1->F1,间接递归F1->F2->F1,很多情况下是直接递归

2015-04-28 08:32:11 2441 2

原创 PNG文件格式总结

参考文档:http://blog.csdn.net/yongzhewuwei_2008/article/details/1007130http://blog.csdn.net/flyingghost/article/details/251110http://www.cnblogs.com/xiaoxiaoboke/archive/2012/02/13/2349765.htm

2015-04-25 21:47:02 12309

原创 <<More Effective C++>>笔记C++技巧1

1.实现虚拟构造函数和虚拟非成员函数把真正的虚拟函数作为类的虚函数即可,其它构造或者非成员类封装下即可。2.实现单例模式单例模式,用类函数内的静态成员实现避免类的静态成员一开始初始化,不能控制初始化的时机。作为指针或者类函数内静态成员可以控制类的初始化时机。3.控制类的对象数量,不是很有必要一般应用中很少需要控制的,如果需要 控制,通过在构造函数中限定数量即

2015-04-24 21:27:57 718

转载 OpenCV图像滤波

转载自:http://www.cnblogs.com/ronny/p/opencv_road_7.html滤波实际上是信号处理里的一个概念,而图像本身也可以看成是一个二维的信号。其中像素点灰度值的高低代表信号的强弱。高频:图像中灰度变化剧烈的点。低频:图像中平坦的,灰度变化不大的点。根据图像的高频与低频的特征,我们可以设计相应的高通与低通滤波器,高通滤波可以检测图像中尖锐、变化明显

2015-04-24 08:22:56 6788

原创 字节字符和整数转换-大小端转换-结构体内存(文件)对齐规则之总结

1.char*,unsigned char*字节,char,unsigned char字符和整型的转换的理解char*,unsigned char*记录的就是二进制转换到的十六进制的字节码[整(整数补码(正整数还是原码负整数补码),浮点数IEEE74原码,字符编码原码),存放顺序是先入先存放的,超过一个字节就会区分大小端存放。char*,unsigned char*指针转换到char,un

2015-04-23 08:40:30 3603

原创 程序设计性能优化整理(二)

1.函数返回值的优化 不能不返回(非类内部成员),不能返回指针(无论是从函数参数还是返回值),也不能返回引用的函数(临时对象的引用会丢掉,除非是类本身)。那么只能返回对象,返回对象也是可以优化的,首先减少类内局部对象的构造,第二返回匿名对象编译器可以帮助优化不生成临时对象。Number operator +(const Number &num1, const Number &num2)

2015-04-22 22:58:05 816

转载 deflate算法总结

一、LZ77算法基本概念LZ77算法的说明网上很多,本文为个人见解,仅供参考。本人认为LZ77算法其实是字典压缩的一个变种,与字典压缩不同的是,它的字典是动态生成的并且只有一个,一般选取一定数量的最近压缩过数据。保存 这些数据的结构叫做滑动窗口,所以LZ77有被常称作滑动窗口算法。至于这么生成字典的原因,其实很简单,因为我们认为一个要压缩的字符串很有可能与上下 文相关,也就是说很有可能

2015-04-21 08:55:29 21178 4

原创 程序设计性能优化整理(一)

很多时候性能问题都不是来自语言本身,编译器,网络或者IO的。凭猜想是很难得到答案的。需要用profile性能分析工具来定位问题。很多时候是来自系统的内存开销和CPU计算导致的性能问题。性能问题100%来自于自己项目的代码,百分之10-20%的代码消耗掉了80-90%的性能。思想方法一:lazy evaluation(懒惰计算法)-当系统CPU内存紧张时候方法:减少避开延迟计算,

2015-04-19 09:51:12 1317

原创 C++异常处理的理解

1.异常的基本概念和选择异常处理try语句会导致比较大的开销,异常规范也会导致比较多的开销(每个都比自己原来大概增大5%-10%左右,速度也减慢原来同等的比例,原因是需要额外的内存和计算来详细记录执行过程中状态)。因此选择使用异常处理需要谨慎。异常处理异于函数调用的地方是函数调用会保留现场,原地返回;异常却是抛出来以后就不会再回来。因此使用异常需要很了解异常。2.抛出值

2015-04-18 08:15:40 1040

原创 C++运算符及其重载问题

1.要谨慎的处理类型转换-用显式的类型转换代替隐性转换1)不要重载类型转换运算符,例如()符号,而是使用显性的函数进行类型转换,比如c_str(),asDouble().2) 单个参数的构造函数需要注意,小心隐性的运算转换,需要用explicit修饰进行显性的转换,不支持explicit可以用内建类,内建类表明外部类和内部类是紧密联系的,一种组合关系生命期一致,构造时候类型递推的转

2015-04-18 08:11:53 772

原创 C++构造函数和析构函数异常

0.构造函数需要安全的构造,那么减少使用全局对象,否则构造函数中的值,或者数据成员动态改变的值很可能因为依赖的资源没有创建好,而导致构造失败。所以构造函数尽量使用单例指针来代替全局对象。1.如果构造函数中还是因为资源问题而失败,那么需要使用智能指针来保护,对构造函数中的每个指针对象都要使用智能指针保护起来。非指针的STL容器,可以在对象生命期结束后自动析构,智能指针就是类似这样的保

2015-04-18 08:11:43 1091

原创 auto_ptr智能指针使用总结

总结:  1).auto_ptr只能作为常量来保护,建议使用boost库的scoped_ptr就足够了,不要使用auto_ptr进行赋值和容器管理。  2).对于需要对智能指针进行赋值\函数传递\容器管理\对象数组指针类型的操作,使用boost的shared_ptr,因为它使用了引用计数,否则使用auto_ptr只能对auto_ptr的引用或地址操作才是安全的。使用au

2015-04-17 23:06:44 722

原创 C++ new/operator new/placement new浅析

总结:不要轻易的去重载new, operator new,placement new运算符,因为调用比较复杂(new操作符可隐式也可显式调用)且内部元素个数这些比较难处理,即使是在内存池技术中,而应该是用包装的方式用宏或者函数调用的方式来实现,效果比较好。new[],operator new[]数组的方式也不建议使用,用宏或者函数的方式来实现内存的申请初始化,析构释放比较好。1

2015-04-16 08:52:57 776

转载 Dijkstra算法详解

算法思想:采用图的BFS(Breadth-First-Search)广度搜索的贪心算法,广度一遍后比较得出当前最短路径点(贪心),再以该点作为中间点,层层向外扩展,直到遍历所有的图节点。算法步骤:1.设置当前点集初态,列出V0到各顶点的距离。2.从V0到当前点集中找出距离最短的点Vj(包括新路径和之前的路径)及相应的路径,并将其余各点的已有路径与经过该路径的新路径比较,若新路径

2015-04-15 23:24:55 1137

原创 map/unordered_map原理和使用整理

map的内部实现是二叉平衡树(红黑树);hash_map内部是一个hash_table一般是由一个大vector,vector元素节点可挂接链表来解决冲突,来实现.hash_map其插入过程是:得到key通过hash函数得到hash值得到桶号(一般都为hash值对桶数求模)存放key和value在桶内。其取值过程是:得到key通过hash函数得到hash值得

2015-04-15 08:47:54 63248 9

转载 2014百度校招笔试题之动态链接库&静态链接库详解

转载自:http://blog.csdn.net/longshengguoji/article/details/12206785静态库:都是编译时候加载整个静态库占用内存多,不能动态升级,运行时代码装载速度快,执行速度略比动态库快。动态库:分为静态调用和动态调用,静态调用程序开始运行时候加载所有需要用到的文件,启动慢点,调用方便。动态调用,程序运行起来以后才根据需要加载需要的函数,调用复杂

2015-04-14 08:50:15 1131

原创 Boost库编译详解

VS命令提示符窗口中先编译bjam编译工具,然后对需要的boost库进行编译。编译调试版本加 debug编译发布版本加  release编译静态链接库:link=static runtime-link=static编译动态库:link=shared runtime-link=shared示例:--t

2015-04-13 23:25:04 8159

原创 Huffman霍夫曼压缩编码算法实现分析

/*霍夫曼编码模型:思想是压缩数据出现概率高的用短编码,出现概率低的用长编码,且每个字符编码都不一样。压缩数据单个字符出现的概率抽象为叶子节点的权值,huffman树叶子节点到根节点的编码(是父节点左子节点那么填0,否则填1)作为字符的唯一编码.实现时候需要注意的规则:1)最左的放置在左边,作为父节点的左节点。2)每次都从没有设置父节点的所用节点中(叶子和分支节点一样对待),从数组小

2015-04-12 20:11:16 5551

原创 PNG图片CRC校验码的计算过程和总结

/*问题:一张PNG图片HIDR Chunk中的数据为:00 00 00 0D 49 48 44 52 00 00 00 DC 00 00 00 DC 10 06 00 00 00 4B CA 13 C2Chunk Type Code域和Chunk Data部分是:49 48 44 52 00 00 00 DC 00 00 00 DC 10 06 00 00 00如何验证用该数据计

2015-04-12 10:17:09 13138 2

转载 PNG文件格式概述

便携式网络图形(Portable Network Graphics,PNG)是一种无损压缩的位图图形格式,支持索引、灰度、RGB三种颜色方案以及Alpha通道等特性。PNG的开发目标是改善并取代GIF作为适合网络传输的格式而不需专利许可,所以被广泛应用于互联网及其他方面上。早期的浏览器不支持PNG图像;JPEG和GIF是主流图像格式。PNG基于无损压缩相比BMP更适合互联网应用;相

2015-04-11 14:02:06 2746

原创 图像文件的3种存储形式

1.位图数据文件除了无调色板的真彩色存放方式。2.调色板为像素颜色的位图数据存放索引的方式。3.还有调色板不是颜色而是像素颜色掩码调色板,位图数据文件为像素颜色的存放形式,例如:r5g6b5格式的文件。现在简单介绍第三种形式:r5g6b5格式的掩码调色板文件解析:如果存放的形式调色板不是没有调色板的,也不是索引调色板,而是掩码调色板,例如r5g6b5格式的位图文件。

2015-04-10 23:45:08 3967

原创 灰度图的理解

前提用十六进制查看图像文件需要注意:beyond compare/notpad++查看图像的十六进制文件,数值数据是小端模式存放的二进制和数据在内存中的表现一致,只是大于1字节的数据在内存中赋值(通过结构体赋值也是一样的)给相应的整型时,不用大小端转换,赋值后会直接得到整型的结果。1. 什么是灰度图?灰度图的RGB值相等灰度图调色板的值就是ARGB 205,0,0,0到

2015-04-10 23:12:56 22636

翻译 C/C++前置声明和避免隐藏包含

1.C/C++.h文件中使用前置声明,减少大型项目的编译时间和支持相互包含。判断使用前置声明的条件:1)类指针/类引用数据成员,静态的类对象可以使用前置声明,函数参数/返回值的类型声明为类对象。2)类继承,类对象成员变量,内联函数使用类指针引用或对象则不能进行前置声明。内联函数,不应该包含for,switch语句,不应该是递归函数或者虚函数;如果内联函数比较独立,可以放置在

2015-04-10 20:24:02 1369

原创 BMP文件解析

BMP文件通常是不压缩的,所以它们通常比同一幅图像的压缩图像文件格式要大很多。例如,一个800×600的24位几乎占据1.4MB空间。因此它们通常不适合在因特网或者其他低速或者有容量限制的媒介上进行传输。根据颜色深度的不同,图像上的一个像素可以用一个或者多个字节表示,它由n/8所确定(n是位深度,1字节包含8个数据位)。图片浏览器等基于字节的ASCII值计算像素的颜色,然后从调色板中读出相

2015-04-09 08:53:55 2516

原创 bmp图片中biXPelsPermeter biYPelsPermeter值的含义

总结:biXPelsPermeter,biYPelsPermeter 只给显示器打印机的一个参考值,当需要不同的尺寸打印出来的时候可以用软件缩放图像,理论上可以随便改变这个值尽管不改变具体的像素数据,但会导致有些软件缩放这个图片出现问题。像素密度:PPI(Pixels Per Inch),一英寸等于2.54cm,一般电脑手机的分辨率是指在电脑手机规格的大小下的长宽的像素数,像素密度才是真正度量

2015-04-02 08:39:13 7433

VisualAssist.X_10.9.2333

Visual Assist X For Visual Studio, 番茄助手支持VS2019 VS2017 VS2015 VS2012 VS2010. 亲测可用,欢迎评论

2020-05-31

Python学习文档

Python学习文档

2018-10-04

C++ 11 学习总结文档

c++特性11 学习 总结文档,对特性查询很有帮助,欢迎下载

2018-10-04

Unreal Engine 4 Game Development in 24 Hours

Unreal Engine 4 Game Development in 24 Hours英文版本,欢迎下载。

2018-10-03

CC++黑色星期五计算方法

C C++黑色星期五代码,逻辑严谨,代码清晰的实现,VC Linux下代码可以直接运行;欢迎下载切磋。

2013-03-12

Linux帮助文档用户指南手册

Linux帮助文档 用户指南 linux/unix用户手册,新手管理员指南;必备文档,chm格式。

2011-04-11

C/C++语言帮助文档

C/C++ 帮助文档 参考文档 ,包含C函数库,C++标准模板库,chm格式易于查询,C/C++程序员手册

2011-04-11

MFC最详细的帮助文档

MFC详细的帮助文档,内涵win32 API 函数,MFC详细类库;VC开发人员的详细文档。

2011-03-08

linux帮助文档linux.chm

linux帮助文档;全面了解最流行的linux版本特征;详解linux操作系统;对初学者很有帮助哦。

2010-11-26

空空如也

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

TA关注的人

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