自定义博客皮肤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)
  • 资源 (5)
  • 收藏
  • 关注

原创 一道题讲清 小端模式和函数参数入栈

#include <stdio.h>int main(){ long long a = 1, b = 2, c = 3; printf("%d %d %d\n", a, b, c); return 0;}//输出是102,而不是123 1 printf()是一个库函数,C,C++中函数的参数是从右往左入栈的; 2 栈的生长方向是从高往低的 3 小端模式是低位存储

2016-05-31 07:41:05 413

原创 面向对象的五大基本原则-solid

面向对象五大基本原则,一个单词:立方体(solid),很好记!!!s( Single-Resposibility Principle ): 单一职责原则 一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。o( Open-Closed principle ): 开放封闭原则

2016-05-31 07:27:01 1658

转载 委托构造函数 (来自C++11)

委托构造函数delegating constructorHerb Sutter & Francis Glassborow1        问题的背景1.1     简介C++没有提供让一个构造函数去委托另一个构造函数执行构造操作的机制。这意味着不能(或不提倡)使用缺省参数,类的维护者不得不编写并维护多个构造函数。这会导致源代码和目标代码的重复,降低了可维护性(由于可能引起不一致

2016-05-31 07:17:27 10185

转载 修改const变量

一、结论声明:不同于C语言的const变量修改问题(可以通过指针间接修改const变量的值),这里只讨论C++ 里的const。C++ const 修饰符,表示常量,即如果以后保证不会修改则声明为const,否则若要修改,那一开始为什么还要声明为const呢?根据C++标准,对于修改const变量,属于:未定义行为(指行为不可预测的计算机代码),这样一来此行为取决于各种编译器的具体实现

2016-05-31 07:10:17 342

原创 程序的编译过程

源码 ->(扫描) 标记 ->(语法分析)语法树 ->(语义分析) 标识语义后的语法树 ->(源码优化)中间代码 ->(代码生成)目标机器代码 ->(目标代码优化) 最终目标代码

2016-05-30 07:36:30 300

原创 数组名作指针什么时候代表整个数组

int a[5]={1,2,3,4,5}; a表示int*, *(a+n) 表示a[n] &a表示int[] *,&a+1指向数组后的第一个位置,增加步长为一个数组的长度。int *ptr=(int*)(&a+1); ptr转换为int*指针,指向数组后的第一个位置,因为是int*类型指针,增加步长为一个`int“

2016-05-30 07:09:48 1301

转载 常用设计模式大全-详细介绍

设计模式(Design Patterns)                                  ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真

2016-05-29 08:30:03 2865

原创 线程安全和线程不安全

线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据===========================================================

2016-05-29 08:04:27 250

原创 C++ STL 的实现

C++ STL 的实现:vector 底层数据结构为数组 ,支持快速随机访问list 底层数据结构为双向链表,支持快速增删deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问stack 底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时queue 底层一般用2

2016-05-29 07:58:17 426

原创 表达式包含的隐式类型转换

表达式会包含隐式类型转换,它由编译器自动执行,不需程序员介入。何时发生隐式类型转换 1. 在混合类型的表达式中,操作数会被转换为相同类型int ival; double dval;ival >= dval; // ival converted to double2. 条件表达式会被转换为bool类型。int ival; if (ival) //

2016-05-28 08:10:47 611

原创 分段和分页 存储管理

一. 分页存储管理1.基本思想用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。2. 分页存储管理的地址机构15          12         11                  0     页号P                 页内位移量W

2016-05-28 08:02:37 1138

原创 static静态变量(静态全局和静态局部)

static int a=1;void fun1(void){ a=2; }void fun2(void){ int a=3; }void fun3(void){ static int a=4; }int main(int argc,char** args){ printf(“%d”,a); fun1( ); printf(“%d”,

2016-05-27 09:39:08 586

原创 设计模式一 工厂模式Factory

设计模式一 工厂模式Factory         在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些

2016-05-26 10:40:18 1755

原创 单例模式最完整的讲解

这是一篇我见过的讲单例模式最完整的,也是讲的最好的一篇博客文章。3. 1 单例模式的动机      对于一个软件系统的某些类而言,我们无须创建多个实例。举个大家都熟知的例子——Windows任务管理器,如图3-1所示,我们可以做一个这样的尝试,在Windows的“任务栏”的右键弹出菜单上多次点击“启动任务管理器”,看能否打开多个任务管理器窗口?如果你的桌面出现多个任务管理器,我

2016-05-26 10:23:57 916

原创 零食知识点整理

整理一些零散的知识点,当作零食吧数组作为参数时,[]里的数不起作用,传递的是首元素的地址,32位OS下是4个字节,数组具体有多少个元素,要自己指出。(数组名做形参,下标没有作用,数组退化为指针,传入的就是地址,通常可以写成指针char* str,指针的大小在32位系统中为4字节)

2016-05-25 07:02:40 489

原创 单道程序系统几个特点:

单道程序系统几个特点: 1. 资源独占性 任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争 2. 执行的顺序性 内存中只有一个程序,各个程序是按次序执行的。在做完一个程序的过程中,不可能夹杂进另一个程序执行 3. 结果的可再现性 只要执行环境和初始条件相同,重复执行一个程序,获得的结果总是一样的 4. 运行结果的无关性 程序的运行结果与程序执行的速度无关。

2016-05-25 06:59:36 10813

原创 单道批系统,响应比优先调度,平局周转时间的计算

单道批处理系统中有4个作业,J1的提交时间8.0,运行时间为2.0;J2的提交时间8.6,运行时间为0.6;J3提交时间8.8,运行时间为0.2;J4的提交时间9.0,运行时间为0.5。在采用响应比高者优先调度算法时,其平均周转时间为T为()小时?计算 周转时间=作业完成时间-作业提交时间 响应比=(作业等待时间+作业执行时间)/作业执行时间当提交J1时,只有J1作业,执行J1,J1的

2016-05-19 07:54:43 4653 1

原创 程序的链接的三种方式

程序的链接有以下三种方式:静态链接:在程序运行之前,先将各目标模块及它们所需的库函数链接成一个完整的可执行程序,以后不再拆开。装入时动态链接:将用户源程序编译后所得到的一组目标模块,在装入内存时,釆用边装入边链接的链接方式。运行时动态链接:对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。其优点是便于修改和更新,便于实现对目标模块的共享。内存的装入模块

2016-05-18 07:51:40 7702

原创 各种内存分配方式产生的动机

题干中的连续分配,应该是包括单一连续分配 和分区分配 两种分配策略。单一连续分配简单,适用于单用户、单任务的操作系统。 为了支持多道程序运行,引入了分区式内存分配,其又分为固定分区和动态分区,主要是围绕着内存碎片做了一些文章。为了改善内存利用率,引入了内存紧缩技术,通过内存数据搬移,把多个不连续的空闲内存拼起来。可想而知,CPU开销比较大。所以不连续分配的方式出现了,包括页式、段式和段页式。初衷

2016-05-17 14:26:06 560

原创 virtualbox中ubuntu和windows共享文件夹设置

系统平台:win8.1、virtualbox4.3.8、ubuntu12.041、安装VBoxGuestAdditions_4.3.8.iso增强工具,安装完毕后根据提示重启Ubuntu,具体操作如下:a、把VBoxGuestAdditions_4.3.8.iso镜像到Ubuntu中,存放在Ubuntu的/media目录中,操作如下:b、安装virtualbox增强包l

2016-05-16 18:14:53 823

原创 Ubuntu 14.04下OpenCV 3.0+Python 2.7安装测试

本文记录了Ubuntu 14.04下使用源码手动安装OpenCV 3.0的过程。此外记录了在Python中安装及载入OpenCV的方法。1、安装OpenCV所需的库(编译器、必须库、可选库)GCC 4.4.x or laterCMake 2.6 or higherGitGTK+2.x or higher, including headers (libgtk2.0-dev)pkg-con

2016-05-16 18:14:08 364

原创 分区分配方案

在分区分配方案中,回收一个分区时有几种不同的邻接情况,在各种情况下应如何处理? 答:有四种:上邻,下邻,上下相邻,上下不相邻。 回收分区的上邻分区是空闲的,需要将两个相邻的空闲区合并成一个更大的空闲区,然后修改空闲区表。 回收分区的下邻分区是空闲的,需要将两个相邻的空闲区合并成一个更大的空闲区,然后修改空闲区表。 回收分区的上、下邻分区都是空闲的(空闲区个数为2),需要将三个空闲区合并成一个

2016-05-15 08:20:21 1749 1

原创 TCP/IP知识点

第一部分:TCP/IP相关知识点对TCP/IP的整体认 链路层知识点 IP层知识点 运输层知识点 应用层知识点 (这些知识点都可以参考:http://www.cnblogs.com/newwy/p/3234536.html)第二部分:常见面试题TCP协议和UDP协议的区别是什么 TCP协议是有连接的,

2016-05-15 08:11:10 399

原创 静态链接库 VS 动态链接库

1. 静态链接库的优点(1) 代码装载速度快,执行速度略比动态链接库快; (2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。 2. 动态链接库的优点(1) 更加节省内存并减少页面交换;(2) DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文

2016-05-15 07:53:31 488

原创 构造函数初始化时必须采用初始化列表

构造函数初始化时必须采用初始化列表一共有三种情况, 1. 需要初始化的数据成员是对象(继承时调用基类构造函数) 2. 需要初始化const修饰的类成员 3. 需要初始化引用成员数据 因为static属于类并不属于具体的对象,所以 static成员是不允许在类内初始化的,那么static const 成员是不是在初始化列表中呢? 答案是NO 一是static属于类,它

2016-05-14 08:24:45 1806

原创 swap函数 的几种实现与比较

前沿swap函数 用于交换 a ,b 两个数。实现方法大同小异,其中不乏有好多版本,现在就其性能和可读性略作分析。不对指出还望指正。。探讨:其中的函数原型是:(1) void swap(int &a,int &b);传引用(2)void swap(int *a,int *b);传地址下面就第二个函数原型分析,代码如下: #include <stdio.h> #include

2016-05-11 07:32:15 1903

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关注的人

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