- 博客(240)
- 资源 (4)
- 收藏
- 关注
原创 DBCS和UCS编码相关
ASCII、GB2312、GBK到GB18030都是向下兼容的,其中GB2312、GBK到GB18030都属于双字节字符集(DBCS字符集)Unicode至于ANSI兼容,例如“汉”字的unicode编码是6C49,而GB编码是BABAUnicode学名是“Universal Multiple-Octet Coded Chasracter Set”,简称UCSUCS只是规定如何编码,并
2013-02-27 17:35:26 1564
原创 dll的弱引用和强引用
先描述下dll的创建方法Test.h和Test.cpp#pragma once#ifdef __COMMON#define __COMMON_EXPORT __declspec(dllexport)#else#define __COMMON_EXPORT __declspec(dllimport)#endif extern "C" __COMMON_EXPO
2013-02-26 19:31:33 1712
转载 观察者模式
观察者模式(有时又被称为发布/订阅模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。参与本模式的各类别列出如下。成员函式以模拟的方式列出。抽象目标类别此抽象类别提供一个接口让观察者进行添附与解附作业。此
2012-08-17 15:39:16 1332
转载 #pragma data_seg()
#pragma data_seg一般用在dll中,dll的地址空间可以被多个进程同时映射,当进程加载时候把dll的地址空间映射到该进程的私有虚拟空间中,当所有的数据段只是用来读的时候,这些数据在内存中时一份,win2000以后采用的COW,即copy on write,在写数据时候,这份数据会被复制成单独的一份。这样在dll中时无法共享数据的,要想共享数据,就需要使用#pragma data_da
2012-08-10 19:54:08 2007
原创 iphone的自动旋转和自动调节大小
iphone的屏幕为320*480,状态栏高度为20像素,主要显示电量,信号强度,时间等。应用程序一般使用三种方法来实现屏幕旋转:一、自动调整属性二、旋转时候重构视图三、在多个视图间进行切换一,自动调整属性和旋转时候重构视图可以归并为一种方法,这种方法对于较复杂的视图不太适合。用到的两个比较关键的函数是-(BOOL)shouldAutorotateToInt
2012-06-27 22:18:26 2308
转载 QSignalMapper类的用法
QSignalMapper这个类并不是个新鲜概念, 早在Qt2里就已经存在, 而且它的功能也是始终如一。 不过由于宣传力度不够(例子里涉及到它的很少)了解这个类人可能还不是很多, 所以特此撰文介绍此类的功能和用法。简单的理解,可以把SignalMapper这个类看成是信号的翻译和转发器, 它可以把一个无参数的信号翻译成带int参数、QString参数、QObject*参数或者QWidget*参
2012-06-25 12:35:30 2768 3
原创 OC的正式协议和非正式协议
最近看了些关于objective-c的正式协议和非正式协议的内容,发现还是有些混乱,可能是因为还不熟悉OC,对正式协议和非正式协议的使用还不是很熟练,所以想整理一下非正式协议,是使用类别category来实现,非正式协议是NSObject的一个类别,这样任何类的对象都可以作为委托对象来使用,它可以列出对象能够执行的所有方法,这样用来实现委托, 我们可以使用选择器来判断该非正式协议中是否有这个方
2012-06-11 20:13:17 4681 2
原创 Objective-C的blocks语法
OC中的blocks和C++中的函数指针类似,从外观和使用上可以看出Int(*CFunc)(int a); //C语言的函数指针。 调用 Intret=(CFunc)(10);Int(^BFunc)(int a); //Blocks 调用 intret=(BFunc)(10);也可以使用typedef关
2012-05-20 15:03:14 2458 1
原创 python线程池处理文件和Queue
#_*_encoding:utf-8_*_import threadingimport Queuefrom DisposeXml import *class ThreadPoolMgr(): def __init__(self,work_queue,thread_num=2): self.threads=[] self.work_queue=wor
2012-03-26 19:47:22 5006 4
原创 python中minidom对xml的常用处理
#_*_encoding:utf-8_*_# -- seanyxie 2012.3.23 --# ===minidom操作XML代码示例import xmlfrom xml.dom import minidomimport codecs# ==由于minidom默认的writexml()函数在读取一个xml文件后,修改后重新写入如果加了newl='\n',会将原有的xml中写入
2012-03-23 19:36:00 9601
原创 python的中文编码问题
我很想就这个问题做个详细的解释,但也许水平有限,解释的不是很清楚,甚至自己理解的都不正确,那么我将长期修改我使用pyscripter来作为编辑器,首先在pyscriter上打上这么一行代码 运行,我们看到下面的运行结果 然后使用notepad++打开这个python文件,如下截图:源文件中中文乱码了,并且python运行的结果中文也乱码了原因:python源文
2012-03-22 16:22:38 10479
原创 函数可变参数
#include#includeusing namespace std;// 求若干数的平方和//第一个参数是参数的个数double pingfangsum(int a,...){ double sum = 0,num; va_list var_arg; //定义一个指向个数可变的参数列表指针; va_start(var_arg,a); //使参数列表指针arg_ptr
2012-02-03 13:51:06 1519
转载 释放线程中new的套接字
在做Symbian应用开发和MeeGo应用开发时Q框架是一个统一的开发框架,很多时候需要在QThread的run中new一个QUdpSocket来收发数据.这时,这个socket对象的释放就成了一个麻烦的问题.如果在thread的析构中直接delete这个socket对象,则会出现如下异常:QSocketNotifier: socket notifiers cannot be disabled f
2011-12-02 17:05:29 2728 1
转载 C++软件开发第三方库大全
1.boost 这个使用的人多不多说了2.pthread windows下的posix线程实现3.libcurl 一个有名的开源网络爬虫库 阿里旺旺中使用到了4.libeay32 OpenSSL Library5.libtidy 一个专门解析htm的库6.zlib 这个鬼都知道7.freetype c接口的type2字体处理库8.libmad 一个编解码mp3的库9.libo...
2011-11-29 22:16:47 3993 1
原创 Qt跨线程信号和槽的连接
Qt支持三种类型的信号-槽连接:1,直接连接,当signal发射时,slot立即调用。此slot在发射signal的那个线程中被执行(不一定是接收对象生存的那个线程)2,队列连接,当控制权回到对象属于的那个线程的事件循环时,slot被调用。此slot在接收对象生存的那个线程中被执行3,自动连接(缺省),假如信号发射与接收者在同一个线程中,其行为如直接连接,否则,其行为如队列连接。
2011-11-29 22:11:48 7402
原创 编译器链接启动代码crtexe.c
你是否想过为什么有时候main()函数是入口地址,在win32中winmain()函数又是入口地址,其实是编译器在动态链接到crt[C runtime library(part of the C standard library)]时候设置的程序设置断点,我们来看crtexe
2011-10-04 00:27:33 6408
原创 HGE图片编辑器texasm.exe
为了减少内存的使用,hge需要的图像大小为2次幂,但是图片的大小不一定都可以做成2次幂大小的,所以为了解决这个问题,hge制作了一个工具texasm.exe,这个工具可以组合图片为一个大的2次幂的图片,加载一次就可以了,每个图片在贴图中都是占有一个区域。 texa
2011-09-24 14:24:56 3513
原创 HGE基本渲染图元
2011.9.23HGE基本的渲染图元是hgeQuad (Quad is the basic HGE graphic primitive),其中有一个hgeVertex成员结构,它用来描述图元顶点信息。The hgeVertex structure is used to
2011-09-23 23:50:51 3333 1
转载 python random模块
Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。random.randomrandom.random()用于生成一个0到1的随机符点数: 0 random.uniform random.uniform的函数原型为:
2011-09-21 15:31:19 1658
转载 非对称加密
公开金钥加密(英语:Public-key cryptography,也称为非对称金钥加密),该思想最早由雷夫·莫寇(Ralph C. Merkle)在1974年提出[1],之后在1976年。狄菲(Whitfield Diffie)與赫爾曼(Martin Hellman)兩位學者
2011-09-20 11:43:07 2179
原创 数据事物嵌套实验和结论
测试数据库:Mysql InnoDB 目标数据库表student(id,int; name,varchar)SQL组合1start transaction;start transaction;insert into student values(1,"hello
2011-09-14 11:06:56 1598
转载 Qt正则表达式
引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb'
2011-09-09 15:37:25 2570
原创 对象自杀 delete this
In order to understand "delete this" :First Step------dive into "delete p"delete p 执行了哪两个步骤?delete p 是一个两步的过程:调用析构函数,然后释放内存。delete p产生
2011-09-08 20:46:45 1773
原创 python调用dll
python中如果要调用dll,需要用到ctypes模块,在程序开头导入模块 import ctypes由于调用约定的不同,python调用dll的方法也不同,主要有两种调用规则,即 cdecl和stdcal,还有其他的一些调用约定,关于他们的不同,可以查阅其他资料先说
2011-09-08 20:30:36 6894 1
原创 python的数据库操作
使用python可以很方便的操作数据库,刚刚开始学python,第一个脚本是导出数据库到指定位置,下面简明总结下python的数据库操作下载安装python环境,下载MySQLdb,MySQLdb是python的数据库操作模块,下面有API文档http://mys
2011-08-02 13:59:57 4972
转载 .dll,.lib,.def 和 .exp文件
简要的介绍一下在微软开发工具中(VC)静态链接库和动态链接库生成过程中出现的.dll .lib .def 和 .exp文件类型。windows平台上可执行文件可能是一个.exe文件也可能四个.dll文件。当然也有一些比较特别的exe或者dll文件,不过他们有其他样式的后缀名比
2011-07-23 11:37:20 3522
原创 QSetting的用法
QSetting是一个平台无关的可以设置和读取应用程序设置的类用户可能希望应用程序记住自己应用程序的设置,windows记录在注册表中,mac中记录在xml中,在unix中,缺乏标准,所以很多都记录在.ini文本文件中QSetting的API都是基于QVari
2011-07-03 12:37:59 8845
转载 重载operator new与operator delete构建内存池
<br />为什么有必要写自己的operator new和operator delete?<br />答案通常是:为了效率。缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也使得在某些特定的场合下,可以进一步改善它的性能。尤其在那些需要动态分配大量的但很小的对象的应用程序里,情况更是如此。<br />例如有这样一个表示飞机的类:类airplane只包含一个指针,它指向的是飞机对象的实际描述(此技术在条款34进行说明):<br />class airplaner
2011-05-21 16:15:00 2555
原创 Map以自定义类做为键值
map在STL中的定义template , class Alloc = alloc> 第一个参数Key是关键字类型第二个参数T是值类型第三个参数Compare是比较函数(仿函数)第四个参数是内存配置对象map内部存储机制实际是以红黑树为基础,红黑树在插入节点时,必须依照大小比对之后在一个合适的位置上执行插入动作。所以作为关键字,起码必须有“在选择map的关键字时,注意以下两点,同时这两点也是改错的方法:a) 关键字明确定义“b) 没有“
2011-04-17 16:31:00 18753 2
原创 判断两个链表是否交叉,并求出交叉点
<br />在前面一篇文章中讲了如何判断一个链表中有环,如果有环的话,又如何判断出环出现在哪里<br />http://blog.csdn.net/xie376450483/archive/2010/08/19/5825261.aspx<br /> <br />今天要讲的和那篇类似,就是给定两个链表,如何来判断这两个链表相交了<br />首先应该分两种情况考虑,第一:这两个链表本身都没有环。 第二:这两个链表本身都有环<br /> <br />首先讲都没有环的情况,如下图<br /><br />方法很多,
2011-03-13 23:00:00 9133
转载 平衡二叉树
<br />形态匀称的二叉树称为平衡二叉树 (Balanced binary tree) ,其严格定义是:<br /> 一棵空树是平衡二叉树;若 T 是一棵非空二叉树,其左、右子树为 TL 和 TR ,令 hl 和 hr 分别为左、右子树的深度。当且仅当<br /> ①TL 、 TR 都是平衡二叉树; <br /> ② | hl - hr |≤ 1;<br />时,则 T 是平衡二叉树。<br />【例】如图 8.4 所示。<br /><br />(a)平衡二叉树 (b)非平衡
2011-03-04 23:31:00 2080
原创 图解如何使用VS2010和Qt导出和使用静态库,动态库
首先使用VS2010来导出一个DLL,该DLL种含有一个类,新建项目,如下图然后看资源管理器,在DLL导出类中添加要导出的函数或者类编辑要导出的类或者函数,如下:编译后生成DLL,名字就是工程名 "ClassDll.dll"然后新建一个工程,调用该dll,代码如下:#includeusing namespace std;#includetypedef int(*MYPROC)(int,int);void main(){ MYPROC pFunc; HMODULE
2011-03-01 21:05:00 11823 1
原创 淘宝面试经过
<br />今天晚上,我跟老马刚把买的电磁炉用快递取回来,晚上做的第一顿饭,正在围着桌子吃呢,电话响了,区号0571,杭州的,昨天几个学长在淘宝内推去淘宝实习,说这两天主管会打电话来,看到电话来,那个兴奋啊...然后就开始了四五十分钟的电话面试<br /> <br />挑重点的说<br />第一个问题,问了web方面的,我没做过web开发,所以倒是没有问什么问题,就关于web架构、前段、服务器这方面问了问<br />然后就是C,C++,不用说,C++的虚函数肯定会问的,然后问还有没有学过其他的语言,我说学过
2011-02-23 21:30:00 2353 4
原创 海量数据,数据挖掘,数据存储方法
现在对网络服务来讲,用户量是非常大的,用户信息或者其他数据也是非常巨大的,如何对海量数据进行存储,进行挖掘,进行筛选等问题,对服务器的响应效率来讲影响很大,关键要设计出良好的数据结构来存储,有良好的算法才好,本文综合了网络上一些其他的文章一般提供下面几个解决方案:Bloom FilterHashBit-MapHeap双层桶划分数据库索引倒排索引(Inverted Index)外排序Trie树MapReduce一个个的来介绍1、Bloom FilterBloom Filter是一种空间效率很高的随机数据结构,
2011-02-22 23:50:00 1854 1
原创 C++运算符转换
<br /> 在C语言中,如果要转换类型转换,使用强制类型转换的方法<br />(T)expression<br />但是在C++中提供了类型转换符,分别是static_cast,dynamic_cast,reinterpret_cast,const_cast这四个类型转化符,下面一一举例来看<br /> <br />static_cast<br />用法:static_cast < type-id > ( exdivssion ) <br />该运算符把exdivssion转换为type-id类型,但没
2011-02-14 01:01:00 1555
原创 谈内存对齐
以前总以为内存对齐,固定的是以4个字节为单位的,今天发现原来错了...为什么要内存对齐呢 大部分的参考资料都是如是说的: 1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。 2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。 首先来看一个例子#include using namespace std;
2011-02-09 22:41:00 1762 1
原创 求子数组的最大值
<br />/*关于子数组,就是对于一个数组,例如int A[]=2,-3,4,6,-2,4,-6,0,1选择任意个数字,就是他的子数组,例如4,6就是他的一个子数组,而且是和最大的一项2011.1.25 漯河*/#include<iostream>using namespace std;template<typename T>T SelectMaxChildArray(T* Array,int Length,int &Left,int &Right){ T Sum=
2011-02-08 17:59:00 1632
原创 Qt动画框架The Animation Framework
一个网友翻译的,没有翻译完,我把剩下的那部分翻译出来贴出来动画框架是Kinetic(运动)项目的一部分,它的目标是提供一中简单的方法创建动画的和流畅的GUI。借助Qt动画属性,可以提供非常自由的动画窗体组件和其他对象(QObjects)。动画框架也能被用于图形视图框架。 一下概述解释动画框架体系结构的基础部分。示例展示了QObject和图形项(graphics items)显示动画中使用的绝大多数基本动画技术。The Animation ArchitectureClasses in the A
2011-02-06 16:34:00 10159
原创 C++的多态
今天问到关于C++的多态性,作为面向对象的三大特性之一,这个也是很基础的,结果一时紧张,只答出来了使用虚函数来实现的多态这一点,后来面试官说还有模板呢啊,恍然大悟,回来后就多态性仔细又看了看,现在总结一下所谓多态,字面意思就是 多种状态,使用方面统一的接口来实现不同的操作,大家熟知的使用虚函数来实现的多态叫运行时的多态,此外还有静态多态,就是在编译时候就已经确立了状态关系,此外,还流传着两个多态的说法,一说是 函数多态,一说是 宏多态,下面来一一介绍一、函数多态我们想,如果要用函数来统一接口,那要怎么办,
2011-01-27 21:37:00 2012
原创 八皇后问题(回溯法)
#includeusing namespace std;#define N 8//N代表皇后数void queen(){ int Count=0; //计算总共的解的数量 int column[N+1]; //column[m]=n表示第m行,第n行放置了皇后,这里下表并从0开始 int row[N+1]; //row[m]=1表示第m行没有皇后,=0表示有皇后 int b[2*N+1]; //b[m]=1表示第m条主对角线没有皇后, int
2011-01-22 20:57:00 12438 6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人