自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

周翔的专栏

努力终有回报 https://github.com/ZhouBox

  • 博客(234)
  • 资源 (3)
  • 收藏
  • 关注

原创 C++函数重载无聊2

先看一段代码#include using namespace std;templateclass CRefAsParam{public: typedef elemType MyArray[nSize]; static void RefAsParam(int p[]) { } static void RefAsParam(MyArr

2013-02-02 16:03:57 690

原创 C++函数重载无聊

先来无事写点东西玩玩                    下面请看两张图                                                             代码字面上来看,第一幅图的重载是成立的,可是为什么出错了呢?                    第一幅的两个参数类型是const P& 和 P,当t传递时,const P&pa =

2013-01-31 00:56:20 733

原创 安装qt5后编译运行后有关Qt at-spi的警告

系统ubuntu12.04安装qt5,编译完成后,在运行软件时,总是                    Qt at-spi: error getting the accessibility dbus address:  "Did not receive a reply. Possible causes include: the remote application did not send

2012-12-21 22:45:34 2840 1

原创 编译期约束(1)

为了在运行期减少应类型安全而导致的程序崩溃,我们回使用断言和一些模板元编程来进行编译期的类型检测。                  判断一个类型是否是POD(plain old data 的缩写,一个普通的古老的数据结构(POD)是一种数据结构。它仅作为被动的收藏的字段值,不使用封包或者otherobject-oriented特征。)              template str

2012-11-13 18:17:20 772

原创 用二叉树进行二进制编码

二进制只有0和1,所以使用二叉树来进行二进制的编码,很是合适,可是怎么样得到一个RFC(前缀无歧义的编码),最简单的策略是所有的编码单元都对应叶节点。

2012-10-27 22:16:43 3628

原创 hadoop大致的工作流程

hadoop过程中最重要的是MapReduce框架,可是处于集群的考虑,网络带宽的限制,其中还有很多优化。                  这是本人画的,希望不要出错....                 一个job分块,进行map操作,hadoop使用数据本地优化,所以在集群中的节点机子上进行map操作,数据最好是一个HDFS的块数据大小既64M,闲话

2012-10-21 19:19:10 2292

转载 vim基本命令

1.vim#在命令行中输入vim,进入vim编辑器2.i#按一下i键,下端显示 --INSERT--#插入命令,在vim中可能任意字符都有作用3.Esc#退出i(插入)命令进行其它命令使用4.:r filename#读入一个文件内容,并写入到当前编辑器中5.:w newfilename#将该编辑器中的内容写入到一个新文件中6.:w

2012-10-08 21:28:59 1153

原创 基于qt的多线程视频采集与传输

将服务端的设备虚拟化,供客户端调用。使用TCP/IP协议传输,使用V4L2实现视频采集。                     只是实现了简单的功能。资源占用大,线程的终结还有问题,数据大,不知道用什么技术压缩图片。                    这是最早的版本,比较新的版本没找到......这个版本的设备是固定添加的,比较新的版本是运行时扫描添加,还有就是客户端比较正式了。

2012-10-08 19:16:53 11972 18

原创 计算数组长度

#include using namespace std;template int size(T(&)[N]) { return N;}int main(){ int a[] ={1,2,3,4,5}; cout<<size(a); return 0;}

2012-10-06 16:50:07 1747

转载 读写分离

读写分离(Read/Write Splitting),基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

2012-10-05 22:56:00 1214

转载 lvs负载均衡

可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server v

2012-10-05 22:53:30 958

原创 qt折线图显示数据

前面也写了一个关于折线的,可是那个太...,暑假没事在家又弄了一个,希望它能够有一点可适应性和扩展性。                                         下面是代码实现      /*************************************************折线图绘制author 周翔2012-8-14****

2012-09-28 23:35:52 11644 16

原创 fstream读取文件

最近在完成编译原理的作业,简单的词法分析,所以文件操作必须使用,可是很不熟悉。在linux下完成后,因为学校机房是msvc,所以只能拿到window下再编译一次,可是问题来了。                     在window下如果以文本格式打开,使用get()函数来读取一个字符,当读到空格时,就是以EOF来处理,就是文件结束。所以只能以二进制文件打开,这样只有当文件结束的时候返回一个E

2012-09-28 23:23:37 1940

转载 linux管道

管道是单向的字节流,它将某个进程的标准输出连接到另一个进程的标准输入。管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。管道和有名管道的读写规则是在程序中应用它们的关键。 管道相关的概念   在linux中管道是通过指向同一个临时的VFS inode的两个file数

2012-09-24 19:18:14 1120

原创 Linux串口编程(2)

该结构体中c_cflag最为重要,可设置波特率、数据位、校验位、停止位。在设置波特率时需要在数字前加上'B'。c_lflag成员ISIG 当接收到字符INTR,QUIT,SUSP或DSUSP时,产生相应的信号。XCASE (不属于POSIX;LINUX下不支持)如果同时设置了ICANON,终端只有大写。输入被转换为小写,除了以/前缀的字符。输出时,大写字符被前缀/,

2012-09-24 18:43:51 1083

原创 Linux串口编程(1)

串行通信是利用一条传输线以比特为单位顺序传送。特点是通信线路简单,一般电缆就可以实现串口通信,适合于长距离且速度较慢的数据通信。串口是计算机上比较常见的接口,一般为RS—232—C接口。串口的配置参数一般包括波特率,起始位比特数,数据位比特数,停止位比特数和流控模式。 串口的设置主要是设置结构体termios的各成员值。 #include

2012-09-23 22:08:19 886

原创 I/O多路转接模型

在这种模型下,如果请求的I/O操作阻塞,但它不是真正阻塞I/O,而是让其中的一个函数等待,在这期间,I/O还能进行其他的操作。在linux下,主要使用select()和poll()函数来实现。                     select()说明:                    int select(int maxfdp,fd_set *readfds,fd_set *wr

2012-09-22 18:16:20 1504

原创 在编译期完成数值计算

编译期数值计算是C++模板元编程很小的一部分,在编译期完成一些数值计算可以提高程序的执行速度,还有就是减少了一些可能的运行期错误。下面是看得书上的很短的一个例子。                                                                                    这是一个递归的例子

2012-09-21 21:58:59 1381

原创 Linux 文件锁

在文已经共享的情况下如何操作,也就是当多个进程同时操作同一个文件时,我们怎么保证文件数据的正确性。linux通常采用的方法是文件上锁,来避免共享资源的产生竞争状态。                    文件锁包括建议性锁和强制性的锁。建议性的,顾名思义,相对温柔一些,在对文件进行锁操作时,会检测是否已经有锁存在,并且尊重已有的锁。在一般的情况下,内核和系统都不使用建议锁。强制性的锁是由内核执

2012-09-21 17:42:08 22532 4

原创 makefile的编写(4)

对于一个大工程来说,编写makefile不会是一件轻松的事,那怎么办?autotools是一个很好的选择,用户只需要输入简单的目标文件,依赖文件,文件目录等就可以轻松的完成makefile了。                     autotools包括下面的一些工具:                     aclocal                     autoscan

2012-09-20 21:42:47 964

原创 linux文件操作

在linux下的文件I/O操作主要用到这几个函数:                      open(),read(),write(),lseek(),close(),这些函数是不带缓存的,是直接对文件进行读写操作。                      这里参数都没给出来,详细可以查资料。                      open用于打开一个文件,read是读取,wi

2012-09-20 21:22:29 688

原创 makefile编写(3)

前面的例子都是显示的指出了makefile的编写规则,为了简化makefile的编写,make还定义了隐式规则和模式规则。                   a.隐式规则                  隐式规则能够告诉make怎么使用传统的规则完成任务,使用者就没有必要详细的指定编译的具体的细节,而是只需要指出必要的目标文件即可。make会自动地搜索隐式规则目录来确定怎么生成目标文件

2012-09-18 22:04:26 890

原创 makefile的编写(2)

在1中举的例子在实际的工程运用中是不太可能出现的,下面我们来进行一些较复杂的makefile的编写。                    写过perl的同学写makefile应该很轻松。                    在makefile中可以使用变量定义,有两种方式,一种是递归展开,还有就是简单方式。                    在递归方式中,变量的引用是一次性全部

2012-09-17 19:17:07 680

原创 Makefile文件的编写(1)

makefile基本结构                   makefile一般包含下面的内容:                   a.需要有make工具创建的目标体(target),通常是目标文件或可执行的文件;                   b.要创建目标体所依赖的文件(dependency_file);                   c. 创建每个目标体时需要

2012-09-16 21:53:47 714

原创 C++模板元编程(1)

最近在看《C++ Template Metaprogramming》,学习模板也知道一些所谓的frist class 编程活动的原理。                     元程序-Metaprogram,就是“a program about program”,就是操作代码的程序,我们最熟悉的也就是我们手头使用的编译器了,它将我们写的高级语言的源代码翻译成机器码。

2012-09-14 17:00:29 1402

原创 最近太忙了

8月就写了两篇博客,实在是过意不去,不过没办法,学驾驶的,现在到了学校要好好学习了

2012-09-01 18:31:31 835

原创 策略模式

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。            策略模式在应用时,是根据不同的使用情况动态的选择使用的算法,对于客户来说,提供了很好的可扩展性和封闭性。                               下面是代码示例:                  #ifndef

2012-08-07 20:07:04 853

转载 Effective C++ 总结

1.   尽量用const和inline,而不用#define,即尽量用编译器,而不用预处理器。2.   尽量用iostream,而不用stdio.h。3.   尽量用new和delete,而不用malloc和free,因为new和delete会执行构造函数和析构函数,而malloc和free不会。4.   尽量在函数中使用C++风格的注释 // 函数头用/* */

2012-08-01 10:04:09 1276

原创 perl中的my和our

our 和 my 一样,都是对变量的声明, 不过 our 声明的是包全局变量, 而 my 声明的是词法变量。 不过,经过 our 声明的变量,它会变得像一个词法变量一样, 其实这也是 our 存在的目的:用来欺骗 strict pragma,使 strict 以为它是一个词法变量,其实却不是。 有一个简单的办法可以理解 our: 1,你就把 our 声明的变

2012-07-31 10:18:24 1181

原创 Qt中的垃圾收集机制

在Qt中我们有很多的new,可是却很少看见delete,这是因为也有自己的垃圾收集机制,当然不同于java的引用计数,Qt是以对象树的形式来实现对垃圾的收集。父类拥有并维护者一颗对象树。你在学一个类的构造函数时,格式是这样:xxx(QWidget *parent = 0),这里的parent就是父类的指针,即是把此类对象注册到父类的对象树中,当父类的对象释放时,对象树的对象也会释放,这样就不需要你

2012-07-30 09:59:59 3395 1

原创 qt中使用启动画面

在程序打开的时候,启动画面是很正常的。                    对于这个qt提供了QSplashScreen类,可是我在使用过程中,他总是一闪而过,不是我们想要的。我们使用启动画面,如果没有模块检测,那我们只是想它显示几秒钟而已。下面是我的办法,继承QSplashScreen,在加个定时器就行了。#ifndef SPLASHSCREEN_H#define SPLASHSC

2012-07-27 19:56:53 3772 5

原创 指针作为参数传递

在C++中函数之间传递指针是很常见。                   在计算机中地址是用无符号的整形来表示的,所以这样的函数                  void xxx(int *p),在运行的时候是传值还是传址?在一般看来,一般人认为是传址,在他们的惯性思维里,指针就是地址,事实情况不是这样的。指针是一个无符号的整形,只不过这个值很特殊,它是计算机中一个数值或对象的地址。

2012-07-25 09:31:45 952

原创 Command模式

命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。  适用性:在软件系统中,行为请求者与行为实现者之间通常呈现一种紧耦合的关系。但在某些场合,比如要对行为进行

2012-07-23 14:12:01 1045

转载 如何交叉编译 移植 QT

QT简介就不多说了,是诺基亚的东东,需求:将QT移植到ARM开发环境首先的准备工作:Linux环境: Linux 2.6.32-24-generic Ubuntu10.04交叉编译工具:arm-linux-  g++-4.4.3Qt安装包: qt-everywhere-opensource-src-4.6.2.tar.gztslib库:   tslib-1.4.ta

2012-07-22 14:49:52 11862 2

原创 FlyWeight模式

设计模式中的享元模式,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类).                  使用面向对象的技术时,虽然在开发过程中能过简化设计,可是在一切是对象的思想下,在一些小粒度,大数量的应用中,可能会导致对象数极具增大,导致消耗太多的内存。比如文本编辑器,如果一个字符就是一个对象,那么可想而知对象数是对少。

2012-07-22 09:57:12 1182

转载 linux 多进程知识

进程是针对系统而不是用户的,对于用户而言,其面对的是程序,当用户输入指令执行一个程序的时候,对系统而言它将启动一个进程,但是和系统不同的是,在这个进程中,系统可能需要再启动一个或者多个进程来完成独立的多个任务,多进程编程主要包括进程控制和进程间通信。    linux环境下进程结构:    linux进程在内存中有三部分数据:代码段 数据段和堆栈段,在CPU都有上述三种段寄存器,以方便操作

2012-07-21 17:20:03 1161

转载 linux 多进程编程基础

一 linux下进程的理解:    linux环境下一个进程在内存中有三部分数据:数据段 堆栈段和代码段    代码段:就是存放程序代码的数据,如果有数个进程运行一个程序,那么他们就可以使用同一个代码段    堆栈段:存放的是子程序的返回地址 参数以及程序的局部变量    数据段:存放程序的全局变量 常数以及动态数据分配的数据空间    系统如果同时运行数个相同的程序,他们之间

2012-07-21 17:17:01 1633

原创 责任链模式

责任链模式(Chain of Responsibility)的目标是使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。              举个例子。你到银行去办理业务,只是简单的存个钱,也许ATM就解决你的问题。如果你是为了交费用的,那等去柜台,但你却是来咨询金融产品的,会有专员接待你,事实上你

2012-07-21 09:48:55 808

转载 C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别

static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。面向过程设计中的static全局变量、局部变量、静态全局变量、静态局部变量的区别C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文

2012-07-20 18:00:50 1038

转载 C++的inline

我们可以用Inline来定义内联函数,不过,任何在类的说明部分定义的函数都会被自动的认为是内联函数。内联函数必须是和函数体申明在一起,才有效。像这样的申明Inline Tablefunction(int I)是没有效果的,编译器只是把函数作为普通的函数申明,我们必须定义函数体。inline tablefunction(int I) {return I*I};   这样我们才算定义了一个

2012-07-20 17:58:21 3118

hadoop eclipse插件

hadoop eclipse 插件 进行MapRecude程序的开发

2012-10-25

基于qt的多线程视频采集与传输

将服务端的设备虚拟化,供客户端调用。使用TCP/IP协议传输,使用V4L2实现视频采集。

2012-10-08

perl正则表达式

perl是unix上的工具,但是现在已经发张成了一门很完整的编程语言特别是在网络服务端

2012-07-11

空空如也

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

TA关注的人

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