自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 统计正确的电话号码,数字马字跳跃

#include using namespace std;int board[4][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9},{-1, 0, -1}};int dir[8][2] = {{-2, -1}, {-2, 1},{-1, -2}, {-1, 2},{1, -2}, {1, 2},{2,

2013-12-26 16:18:24 994

转载 vtk 笔记 --- 图片的X与Y轴变换,旋转

有时候需要进行图片左右或者上下旋转,或者X,Y,Z之间的变换,用到下边两个函数即可。vtkImagePermute:X,Y,Z轴变换vtkImageFlip:绕某轴旋转代码如下:#include "vtkImageGridSource.h"#include "vtkPNGReader.h"#include "vtkImageViewer.h"#inclu

2013-12-16 12:36:08 3324

转载 共享内存实现进程间大数据的交换

引言  进程间的数据交换和共享是一种非常重要和实用的技术。大、中型软件的开发设计多是由众多程序设计人员的合作完成,通常一个程序设计人员只负责其中一个或几个模块的开发,这些模块可以是动态链接库也可以是应用程序或是其他形式的程序组件。这些独立开发出来的程序模块最终需要作为一个整体来运行,即组成一个系统,在系统运行期间这些模块往往需要频繁地进行数据交换和数据共享,对于动态链接库同其主调应用程序之间的

2013-10-16 20:24:23 1701

转载 SendMessage、PostMessage原理

本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:1、SendMessage、PostMessage的运行机制。2、SendMessage、PostMessage的运行内幕。3、SendMessage、PostMessage的内部实现。注:理解这篇文章之前,必须先了

2013-10-16 15:17:48 694

转载 爱奇艺笔试面试题

笔试题目主要侧重于操作系统:1.某完全二叉树的总结点数为967,求叶子节点数?4842.以下几种方式都可以用于进程中线程的通信,只能用于同一进程中的线程通信为()a.事件b.信号量c.互斥量d.临界区 关于线程间通信,涉及到同一进程内的所有线程通信和不同进程的线程间通信; 因为同一进程中的所有线程均可以访问所有的全局变量,因而全局变量成为同一进程间多线程通信的最简单

2013-08-29 14:34:29 12734

转载 判别是大端还是小端

请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1解答:int checkCPU( ){   {           union w           {                    int  a;                  char b;

2013-08-27 11:37:59 765

转载 base 64编码

关于base64编码的原理及实现我们的图片大部分都是可以转换成base64编码的data:image。 这个在将canvas保存为img的时候尤其有用。虽然除ie外,大部分现代浏览器都已经支持原生的基于base64的encode和decode,例如btoa和atob。(将canvas画布保存成img并强制改变mimetype进行下载,会在下一篇记录)但是处于好奇心,还是驱使我去了解

2013-08-26 16:04:36 542

转载 通过NTP协议进行时间同步

NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP工作原理NTP的基本工作原理如下图所示。Device A和Device B通过网络相连,它们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,作如下假设:在Device A和Device B的系统

2013-08-20 10:10:54 5687

转载 浮点数的比较

一、请先看以下的一段代码:int main(){ float a=1.1;//①warning : truncation from 'const double' to 'float' float b=1.2;//②warning : truncation from 'const double' to 'float' float c=2.3; b=a+b; cout 

2013-07-24 14:34:53 556

转载 C++读取配置文件

头文件:get_config.h?/*****************************************************************************   作者:  jasitzhang(张涛)*   日期:  2011-10-2*   目的:  读取配置文件的信息,以map的形式存入*  

2013-07-11 14:53:16 593

转载 定时器TIMER

Timer事件,即定时器事件,是在游戏编程中,经常使用的一个事件。借助它可以产生定时执行动作的效果。这篇文章,就和大家一起探讨一下如何使用SetTimer()函数。1、SetTimer定义在那里?SetTimer表示的是定义个定时器。根据定义指定的窗口,在指定的窗口(CWnd)中实现OnTimer事件,这样,就可以相应事件了。SetTimer有两个函数。一个是全局的函数::

2013-07-11 10:26:38 579

转载 用引用代替指针

建议26:用引用代替指针(1)指针,可以通向内存世界,让我们具备了对硬件直接操作的超级能力。C++意识到了强大指针所带来的安全隐患,所以它适时地引入了一个新概念:引用。引用,从逻辑上理解就是“别名”,通俗地讲就是“外号”。在建立引用时,要用一个具有类型的实体去初始化这个引用,建立这个“外号”与实体之间的对应关系。对于引用的理解与使用,主要存在两个的问题:它与指针之间的区别。未被充分

2013-06-20 19:36:00 4138

转载 C++笔试 面试题

1:  x&(x-1)表达式的意义 求下面函数的返回值(微软) -- 统计1的个数-------------------------------------int func(int x){    int countx = 0;    while(x)    {        countx++;        x = x&(x-1);    }

2013-06-20 18:18:45 560

转载 SecureCRT中文乱码解决方案

SecureCRT是一个商业终端连接工具。SecureCRT可以自定义界面颜色方案,可以连接SSH1与SSH2、Telnet等服务。默认设置下,通过SecureCRT连接SSH服务器可能出现中文乱码的情况。这是由于SecureCRT字符编码与服务器的字符编码不一致造成的。解决方法非常简单,进行设置即可。中文乱码解决方法一般来说1、右键点击SecureCRT的连接标签选择“会

2012-12-22 01:02:00 838

转载 在MFC中分割窗口

分割窗口分为两类:动态分割窗口和静态分割窗口。动态分割窗口是指:用户可以动态的分割和除去分割窗口,分割窗口会创建和删除相应的窗格。Microsoft Word就是使用动态分割窗口的例子,这是一种最常用的分割窗口。动态分割窗口最多可以有2行´ 2列个窗格。静态分割窗口是指:在窗口创建时,分割窗口的窗格就已经创建好了,且窗格的数量和顺序不会改变。窗格为一个分割条所分割,用户可以拖动分割条调整相

2012-04-16 20:08:41 4108 1

转载 ITK 配准框架中的 Subject/Observer 模式及优化过程模拟演示-1

最近正式开始研究 ITK 的配准框架及其过程,先把自己理解到的一些东西写出来记下。   ITK 中的医学图像配准框架主要由以下几部分组成:几何变换组件、图像插值组件、相似性测度组件、优化组件、以及连接各个组件的配准方法组件。对于多分辨策略还会多出两个图像金字塔组件。   图像配准的本质是一个迭代优化的过程,关于图像配准框架示例可参考:ITK 配准框架示例,或者参考 ITK 文档。简单的说,

2012-04-06 13:38:06 1643

转载 deque双向队列

deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存deque中的数据。

2012-03-23 00:00:22 580

转载 32位、64和“最大内存量”是怎么回事

32位、64和“最大内存量”是怎么回事  首先需要明确一下,32位也好,64位也好,这个概念是同时存在于软件、系统、主板芯片组和CPU四个方面的。对于操作系统到底最多能支持多少内存这个问题,其实不是操作系统一方面说了算的。  目前不少人可能对于CPU的寻址概念有些模糊,认为CPU的寻址范围与其平常概念上的位宽直接联系,即所谓的32位CPU寻址范围为2^32,64位的则是2^64。其

2012-03-22 21:36:50 3231

转载 窗宽与窗位

以下内容转自“CT诊断学”一书,希望能帮助大家更清楚地认识窗宽窗位。窗宽与窗位     CT能识别人体内2000个不同灰阶的密度差别。而人的眼睛却只能分辨16 个灰阶度。因此,人眼在CT图像上能分辨的CT值应为125 Hu ( 2000 / 16 )。换句话说,人体内不同组织CT 值只有相差125Hu 以上,才能为人眼所识别。人体软组织CT值多变化在20 - 50 Hu之间,人眼就无法

2012-03-21 21:19:01 10572

转载 单例模式完全剖析

概要 单例模式是最简单的设计模式之一,但是对于Java的开发者来说,它却有很多缺陷。在本月的专栏中,David Geary探讨了单例模式以及在面对多线程(multithreading)、类装载器(classloaders)和序列化(serialization)时如何处理这些缺陷。单例模式适合于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池和文件系统,它们都是原型的例子。典型的情况

2012-03-15 00:11:37 432

转载 接口隔离原则

接口隔离原则(Interface Segregation Principle)1、接口隔离原则的定义:第一种定义: Clients should not be forced to depend upon interfaces that they don't use.客户端不应该依赖它不需用的接口。第二种定义:The dependency of one class to another

2012-03-09 16:22:01 518

转载 迪米特法则

法则定义  迪米特法则(Law of Demeter)又叫作最少知识原则(Least  Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD.来源历史  1987年秋天由美国Northeastern University的Ian  Holland提出,被UML的创始者之一Booch等普及。后来,因为在经

2012-03-09 15:46:27 1070

转载 里氏代换原则

里氏代换原则(Liskov Substitution Principle, LSP)1、里氏代换原则定义若对于每一个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P的行为功能不变,则S是T的子类型。What is wanted here is something like the following substitution pro

2012-03-09 14:14:43 1481

转载 依赖倒转原则

3.1 依赖倒置原则的定义     依赖倒置原则(Dependence Inversion Principle,简称DIP)这个名字看着有点别扭,“依赖”还“倒置”,这到底是什么意思?依赖倒置原则的原始定义是:High level modules should not depend upon low level modules. Both should depend upon abstract

2012-03-09 14:05:33 813

转载 开放—封闭原则

正如Ivar所说,“所有的系统在它的生命周期内都会改变,开发系统时期待它比第一个版本能够持续更长的时间往往另人头疼。”怎么设计才能使其面对改变比较稳定并且比第一个版本持续更长时间?Bertrand Meyer在1988年就给出了指导方针即后来创造的著名的开放-封闭原则。“软件实体(类、模块、函数等)应该对于扩展开放,但对于修改封闭。        当对程序进行一个单一个改动会导致它所依赖的模型

2012-03-08 13:46:44 1169

翻译 单一职责原则

S- Single Responsibility Principle(SRP)单一职责原则  引:只有佛自己有道破玄机的责任。单一职责表现为“强聚集”(cohesion),不应该有一个以上的原因修改一个类。例如一个保龄球小游戏,可以用一个"Game"类处理两个单独的职责。一个是保持现在框架的轨迹,另一个是计算分数,但最后它被拆成了两个类。因为每个职责是类修改的一个基准线,当需求改变时,

2012-03-08 12:41:57 1105

原创 左键点选三角面片,并用右键删除

#include "stdafx.h"#include "vtkPolyDataReader.h"#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2012-03-07 16:13:04 3712

原创 左键点选三角面片并改变颜色

// CellPicking.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "vtkPolyDataReader.h"#include #include #include #include #include #include #include #include #include #include #include

2012-03-07 16:05:07 2002

原创 框选三角面片并改变颜色

// CellRubberBandPick.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "vtkPolyDataReader.h"#include #include #include #include #include #include #include #include #include #include #i

2012-03-07 15:58:34 5668 2

转载 VTK拾取相关的类

1、vtkAbstractPicker:define API for picking subclasses   该类是一个抽象基类,为它的具体的子类定义了最基本的API,最基本的功能是返回拾取位置的x-y-z global坐标系统的坐标值(pick自身是在屏幕坐标中进行定义的)类定义了一个纯虚函数Pick(),它的作用是给定一个选择点(屏幕坐标系统里的,以像素为单位)以及一个Rende

2012-02-28 13:32:46 2688

转载 Assert

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include  assert.h>   void assert( int expression );  C++ assert()函数的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。/* asse

2012-01-02 18:57:35 492

转载 如何在对话框中获得文档的指针?

CMainFrame   *pFrame=(CMainFrame   *)AfxGetMainWnd(); CMyDoc   *pDoc=(CMyDoc   *)pFrame-> GetActiveDocument();

2011-12-29 12:44:29 505

转载 从文档类取得视图类的指针

CDocument类提供了两个函数用于视图类的定位:GetFirstViewPosition()和GetNextView(),具体语法如下: virtual POSITION GetFirstViewPosition() const; virtual CView* GetNextView(POSITION& rPosition) const;注意:GetNextView()括号中的

2011-12-28 16:04:00 1295

原创 LPCTSTR 和 const char* 的关系

我们先来看一段宏定义#ifdef _UNICODE #define LPCTSTR LPCWSTR #else #define LPCTSTR LPCSTR #endif   #define LPCWSTR const wchar_t * #define LPCSTR const char * 如果你的程序是多字节编译,那么LPCSTR和const char

2011-11-30 16:12:57 988

转载 MFC AfxMessageBox() 简单问题及-T宏的作用

MFC AfxMessageBox() 简单问题AfxMessageBox(“恭喜你过关了");error: none of the 2 overloads could convert all the argument但是用 AfxMessageBox(_T("恭喜恭喜,过关了"));就没有问题。  解决方案:1:VC8之后的版本创建的工程默认使用UNICODE字符串,带有

2011-11-24 21:35:35 2865

转载 AfxMessageBox和Messagebox的区别

AfxMessageBox的函数原型  int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );  int AFXAPI AfxMessageBox( UINT nIDPrompt, UINT nType = MB_OK, UINT nIDHelp = (UINT) –1 );

2011-11-24 18:13:11 706

转载 OnEraseBkGnd与OnPaint的联系

在使用VC进行绘图时,最郁闷的就是屏幕闪烁问题。有时只能使用双缓冲去解决,当然更多的时候是去忍受。有没有什么这种的方法?有,那就是重载OnEraseBkgnd()函数。该函数控制重绘图的背景刷新,默认将窗口用系统背景颜色填充,即用白色将窗口刷一遍。这就产生的严重的闪烁效果,有时看到屏幕白的一条一闪而过,非常不爽。如果将该函数返回值设为TRUE,即不进行背景重绘,虽然屏幕的刷新仍然会闪烁,但是就不会

2011-11-24 15:55:25 423

转载 OnDraw与OnPaint有什么区别?(转)

学习中遇到一个问题,OnDraw与OnPaint有什么区别?上网搜索了一下,又查了一下MSDN和MFC的一些源文件,现整理如下。OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能

2011-11-24 15:29:25 377

空空如也

空空如也

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

TA关注的人

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