- 博客(99)
- 资源 (1)
- 收藏
- 关注
原创 CentOS6.4编译Hadoop2.2.0
1.安装jdk不要小看这一步,起先装了个jdk1.8.0,出现如下错误。[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.8.1:jar (module-javadocs) on project hadoop-maven-plugins: MavenReportException:
2014-04-12 22:19:25
4696
原创 [C++] C++的标准IO
IO库是一个面向对象库,使用stream提供了输入输出功能。什么叫stream呢?看这段叙述[1]:A stream is an abstraction that represents a device on which input and ouput operations are performed. A stream can basically be represented as a
2013-08-09 16:26:32
1003
原创 [OpenGL Insights] Ch3. WebGL for OpenGL Developers
作者: Patrick Cozzi and Scott Hunter3.1Introduction不要误会,我们本质上是C++开发者。我们考虑triple-pointers, partial template specialization, vtable layouts multiple inheritance。但是,由于种种原因,我们现在是full-time JavaScript开发者。
2013-08-02 16:55:19
836
原创 [编程之美] 分层遍历二叉树
一、问题描述将一棵二叉树按层遍历,并将结点依次编号,如下面二叉树的分层遍历结果为:24 65 3 78 1并编程函数打印指定层结点,根结点为第0层。二、我先想到的是用队列来记录自身已经打印但子结点尚未打印的结点。但我并不知道每层应该应该出队多少个(否则需要使用另一个数据结构记录之,或者将NULL也压入队,加大了存储空间)。
2013-08-01 16:58:50
824
原创 [编程之美] 瓷砖覆盖地板
问题描述:用1*2的地板去覆盖N*M的地面,是否能正好覆盖。一、这个题本没什么难度。只要N或M其中之一为偶数,就可以正好覆盖;如果都为奇数,则不能覆盖。二、求用1*2的瓷砖覆盖2*M的地板有几种方式?第一块砖有两种放法,横放和纵放。用F(M)表示放法的个数。则F(M)=F(M-1)+F(M-2)。这是个斐波那契数列。易求。三、如果再扩展,用p*q瓷砖
2013-08-01 16:58:14
1731
原创 OpenThreads线程库
OpenThreads与pthread不同点在于,他是根据面向对象开发的。一、OpenThreads在线程同步上不同于之前我所了解的(比如pthread),除了常用的几路,他还提出了额外的。传统的:1. 互斥量OpenThreads::Mutex类当线程使用某一资源时,先使用互斥量加锁。由于采用了面向对象机制将互斥量抽象为一个类,所以不像pthread函数那样传入个参数。Mutex
2013-07-29 17:18:23
4311
原创 [OpenGL Insights]Ch2. Transitioning Students to Post-Deprecation OpenGL
..
2013-07-29 11:58:55
807
原创 [OpenGL Insights] Ch1. Teching Computer Graphics Starting with Shader-based OpenGL
..
2013-07-25 11:00:15
2109
原创 [OpenGL Insights] Introduction
在公司实习,有较多的“闲暇”时间,所以没事看下《OpenGL Insights》,所说是本好书。由Patrick Cozzi, Christophe Riccio编写。Patrick Cozzi的主页是:http://www.seas.upenn.edu/~pcozzi/
2013-07-25 10:58:54
1567
原创 malloc/free和new/delete
一、相同点二、不同点1. malloc/free是C的库函数,而new/delete是C++的操作符。参考:1. http://www.pixelstech.net/article/index.php?id=1340193129
2013-07-16 02:41:39
718
原创 [Effective C++] 继承与面向对象设计
一、条款32——确定你的public继承塑模出is-a关系当使用public继承时,就是告诉编译器和代码读者(我认为告诉代码读者更重要,因为读者的误解,没有人会提示),这是个is-a的关系。此条款的关键在于说明了有些情况直觉上正确但是实际上是错误的。比如,直觉上,正方形Square是一种特殊的长方形Rectangle,所以Square理应继承于Rectangle。这在计算面积,周长,伸缩n
2013-07-14 16:35:36
739
原创 [Effective C++] 让自已习惯C++
一、条款01——视C++为一个语言联邦起初看这个条款,觉得无甚必要,无非是将C++做了个分类,这能有什么重要的意义?可是越到后来越觉得此条款之必要。首先是更清楚的理解C++的“功能”,它能做什么以及怎么做,其次,当面临多种选择时做出最好的选择。C++有四种次语言:1. CC有什么而没有什么?C有区块,语句,预处理器,内置数据类型,数组,指针等。而没有模板,异常,重载。2. Or
2013-07-14 16:10:10
677
原创 单例模式Singleton
一、功能(什么是单例模式)单例模式有两个主要功能,一是保证此类只能有一个实例,二是提供全局访问点。二、为什么需要单例模式某些系统中,有的类只能有一个实例,比如一个学校只能有一个校长,并且希望这个校长可以任何时候任何地点被同学老师联系到。三、代码class Singleton{public: static Singleton* Instance();protect
2013-07-14 14:41:49
953
原创 STL中的容器
一、从元素的组织方式上,容器被分为两类:序列式容器和关联容器。序列式容器有:vector, list, deque, stack, queue, priority-queue等。关联容器有:
2013-07-08 17:06:29
555
原创 [OSG]OSG中字体的排版
一、OSG中,关于文字排版的有如下几种:1. 位置2. 旋转3. 对齐4. 坐标轴对齐5. 文字而局二、详解各种属性,以输入"Hello world“为例。1. 位置顾名思义,指定文字串的起始点。void setPosition(const osg::Vec3& pos);2. 旋转设置文字旋转的角度和中心轴。void setRotation
2013-07-08 10:47:11
1515
原创 [SVN]SVN的使用经验汇总
初用SVN,把平日里遇到的问题记录于此。1. 文件显示黄色叹号,这是因为本地文件与服务器文件冲突,并且SVN无法解决此冲突,于是需要用户手动解决。在文件中有>>>>mine标识,代表的是本地内容。解决完冲突后,点击resolved,文件标识会变成红色叹号,此时便可commit。
2013-07-04 15:37:04
671
原创 [VTK]VTK中的数据表示
VTK的厉害之处在于,他以流水线的方式提供了对数据的处理,这种处理非常强大(以Filter存在)。既然是对数据的处理,那么探索数据的存储方式就显得重要。故而在此浅作研究。
2013-07-02 10:59:39
671
原创 c/c++,windows中各种字符的转换
每次碰到char, wchar, CString, BSTR等等一系列字符时,只关系到字符匹配问题,我都要重新查资料,头疼。所以在此记录碰到的关于字符,字符转换的经验。
2013-07-01 15:55:24
701
原创 [设计模式]设计模式综述
有三大类设计模式:一、创建型模式创建型模式抽象了实例化过程。1.抽象工厂(Abstract Factory);2.生成器(Builder);3.工厂方法(Factory Method);4.原型(Prototype);5.单例模式(Singleton)。二、结构型模式三、行为模式参考:1. 《设计模式——可复用
2013-06-30 19:45:37
576
原创 [STL]源码解析:deque
使用Deque时包含头文件,而此头文件只是“简单”的包含了。一、双向队列基本迭代器(_Deque_iterator_base)1. _Deque_iterator_base是有一个模板的模板类:template struct _Deque_iterator_base {}2. 定义别名 typedef random_access_iterator_tag iter
2013-06-30 15:40:00
814
原创 [STL]源码解析:stack
我们在使用STL时,包含的头文件是,而stack中并没有实体,只是“简单”包含了,真正的东西,在这个头文件中。一、stack的三种模板#if !defined ( _STLP_LIMITED_DEFAULT_TEMPLATES )template >#elif defined ( _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS )# define
2013-06-30 15:00:25
1328
原创 [COM]error MIDL2025
接触IDL时间不长,今天编译一个IDL文件,编译时出现如下错误:error MIDL2025 : syntax error : expecting a type specification near "IcwLineSymbol"error MIDL2026:...(记不清了)MIDL出现此错误说明 IcwLineSymbol 未定义。于是搞了个前置定义,编译通过,但链接出错。
2013-06-27 17:12:01
4712
原创 [COM]接口描述语言IDL
一、首先要清楚一点,使用IDL只是定义COM接口的一种方法(用C++也可以定义)。IDL是一种语言,Microsoft Visual C++提供了MIDL工具,可以将IDL文件编译成C/C++兼容的接口描述头文件(.h)。如下是用IDL写的一个IcwElement接口[ object, uuid(0736591A-734E-4a3d-A1F0-150A50E402BB), hel
2013-06-27 11:31:39
5059
原创 [算法导论]图的基本算法
一、图的数据结构图有两种表示方式:邻接矩阵和邻接表。1. 邻接矩阵以矩阵A(i,j)表示,设图有N个结点,结点为x1...xN,则A(i,j)为N*N矩阵。如果存在x(i)到x(j)的边,则A(i,j)=w,否则A(i,j)=0(w为权值,无权值情况下为1)。那么显然,邻接矩阵适用边较多的图(稠密图)。他的空间复杂度为O(V^2)(恒定的)。2. 邻接表邻接表是数组和链表的组合
2013-06-26 21:43:21
940
原创 [OpenGL]纹理坐标的自动生成glTexGen
以红宝书中示例程序9-8为例,探索glTexGen函数。一、函数原型:void glTexGen{ifd}(GLenum coord, GLenum pname, TYPE param);void glTexGen(ifd}v(GLenum coord, GLenum pname, const TYPE* param);参数一coord:GL_S, GL_T, GL_R, GL_Q;
2013-06-26 11:46:51
6352
原创 单源最短路径
一、什么叫单源最短路径一个有向图G=(V,E),从源点S到某点的所有路径中,权值和最小的为最短路径。S到图中所有点的最短路径形成最短路径树。(注意理解最短路径和最短路径树的不同, 最短路径是最短路径树的子集)。二、初始化操作INITIALIZE-SINGLE-SOURCE(G, s) for each vertex v∈V[G] do d[v] = ∞
2013-06-24 20:18:29
873
原创 [编程之美]求二进制表示中1的个数
问题描述:如何计算一个字节二进制表示中“1”的个数。1. 最简单的,对所有的位遍历一遍可以统计所有1的个数。但如何遍历是一个问题。一是除以2,一是移位。2. 最主要的是这个方法(巧的很)!写弄上代码,方便说明:int Count(Byte v){ int num = 0; while(v) { v &= (v-1);
2013-06-24 19:56:23
717
原创 最小生成树
一、什么叫最小生成树一个无向连通图G=(V,E),最小生成树就是联结所有顶点的边的权值和最小时的子图T,此时T无回路且连接所有的顶点,所以它必须是棵树。二、为什么要研究最小生成树问题《算法导论》上举了电子线路设计的例子。而在经济学、生物学中也常应用最小生成树。三、如何求一个无向连通图的最小生成树《算法导论》中提取讲解了两种得到最小生成树的算法,一是Kruskal算法,另一种是P
2013-06-24 19:12:35
3692
原创 [OpenGL]OpenGl中的纹理
一、什么是纹理据我的理解,纹理实际上就是一幅图像(一维二维or三维皆可),然后用此图像对另一个图元进行贴图(以某种规则铺上去,可能被缩放或扭曲)。二、为什么要引入纹理如果不引入纹理,描述一幅现实画面时,需要用基本图元(如三角面片)去仿真,这既不真实,效率又低。三、OpenGL中如何进行纹理贴图1. 创建纹理对象,并为它指定一个纹理纹理对象实际上就是纹理图像,并有个纹理编号(
2013-06-24 11:19:09
5557
2
原创 [VTK] VTK中的光线投射算法
一、VTK中的光线投射算法的基类是:vtkVolumeRayCastFunction。此在有两个重要方法:1. 初始化静态信息结构void FunctionInitialize( vtkRenderer *ren, vtkVolume *vol, vtkVolumeRayCastStaticInfo *staticInfo );根据传入的ren和vol初始化staticInfo
2013-06-23 10:41:17
4018
原创 关于图像处理&机器视觉&可视化的网站备份
1.Voreen:http://www.voreen.org/一个开源的Volume Rendering Engine2.斯坦福大学图形实验室:http://www-graphics.stanford.edu/3.Simian:http://www.cs.utah.edu/~jmk/simian/index.htm 犹他大学Joe Kniss写的Volume Rendering T
2013-06-23 10:25:13
1080
原创 C++中常量引用
一、C++中对于一个常量进行引用,实际的执行过程是先建立一个临时变量,被用常量赋值,然后将引用引用此临时变量,对此引用的改变也即改变了临时变量而非原常量。1.常规情况: int a = 1; int &b = a; b = 2; cout << a << "\t" << b << endl; cout 输出为:a与b的地址是一样的。2. 对常量引用i
2013-06-20 18:13:03
1172
原创 [STL]源码分析:allocator
一、STL规定的allocator标准参见侯捷《STL源码剖析》STL规定的allocator标准包含如下功能(方法),当然,并非所有的STL实现版本都严格遵循此标准,因为allocator被STL隐藏,用户一般不直接使用allocator,故而与标准不同也不影响STL的使用。allocator::value_typeallocator::pointerallocator::con
2013-06-20 17:54:06
1490
原创 [STL]源码解析
为了更好的理解C++性质、设计模式、算法等等,决定以分析STL源码为切入点,希望可以坚持下去,自会有所收获。一、STL以STLport 5.2.1为主,下载地址:http://sourceforge.net/projects/stlport/。二、STLport的编译:http://blog.chinaunix.net/uid-20781368-id-1845167.html。此讲的比较复
2013-06-20 17:10:15
700
原创 [Unix环境高级编程] 线程
一、什么叫线程,为什么要引入线程二、线程的表示与PID类似,线程有线程ID,类型为pthread_t,注意不能作为整数处理。如果要比较两个线程ID是否相同,要使用函数:int pthread_equal(pthread_t tid1, pthread_t tid2)另pthread_t pthread_self(void)可以得到当前线程的线程ID。
2013-06-20 16:21:42
686
原创 [Windows]接口描述语言IDL
接口描述语言Interface Description language一、首先,为什么要引用接口描述语言呢?接口描述语言是平台无关的,并且注意,他是一种语言。VS提供了工具MIDL可以接IDL编译成为C++兼容的的“接口描述头文件.h”。这个生成的.h文件可以提供给客户使用。二、实例
2013-06-20 16:19:42
1784
VTK guide, VTK oriented object, VTK api
2012-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人