- 博客(58)
- 资源 (1)
- 收藏
- 关注
转载 求二进制数中1的个数——《编程之美》
<br />求二进制中1的个数。对于一个字节(8bit)的变量,求其二进制表示中"1"的个数,要求算法的执行效率尽可能的高。<br />先来看看样章上给出的几个算法:<br />解法一,每次除二,看是否为奇数,是的话就累计加一,最后这个结果就是二进制表示中1的个数。<br />解法二,同样用到一个循环,只是里面的操作用位移操作简化了。<br /> 1: int Count(int v) <br /> 2: { <br /> 3: int num = 0;<b
2011-06-01 20:05:00
908
转载 寻找发帖“水王”与扩展算法——《编程之美》
<br />Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗?分析与解法<br />首先想到的是一个最直接的方法,我们可以对所有ID进行排序。然后再扫描一遍排好序的ID列表,统计各个ID出现的次数。如果某个ID
2011-06-01 19:22:00
1034
转载 Qt中实现单例模式(SingleTon)
<br />单例模式分为“饥汉”和“饿汉”两种版本,也正是线程安全问题使得原本简单的单例模式变得复杂。由于单例模式很常用,Boost库中有强大的泛型单例实现,我也利用Qt的原子指针QAtomicPointer来实现Qt中的单例模式: //.cppclass SingleTon{ public:/*! /brief 用于获得SingleTon实例,使用单例模式。 * /return SingleTon实例的引用。 */static SingleTon &getInstance(
2011-05-03 13:54:00
4742
2
转载 QtMultimedia 模块
<br />QMediaPlayer 累提供了播放媒体源的功能,QMediaPlayer 是一个高层的播放控制累,他可以用来广播包括了歌曲,电影,以及网络的广播,播放的内容是使用QMediaContent 来构造。<br /> <br />player = new QMediaPlayer;<br /> connect(player,SIGNAL(positi&111nChanged(qint64)), this,SLOT(positi&111nChanged(qint64))
2011-04-27 10:15:00
2729
转载 Qt phonon多媒体框架
<br /> Phonon是什么?Qt从4.4版本开始提供的一套多媒体框架,提供多媒体回放的功能。目前在Qt 4.6中实现多媒体播放图形界面主要依赖于phonon框架,其实qt中还有一个Multimedia模块,帮助文档中对它的描述是:实现底层的多媒体播放功能,在一般情况下上层的接口phonon模块更适合实现这些功能。phonon最初是 一个 源于KDE的项目,为使用音频和视频的应用程序开发提供的一个框架。应用程序不用去管多媒体播放是通过什么实现的(如gstreamer、xine),只
2011-04-27 10:06:00
682
转载 Qt for Maemo的开发环境搭建流程
<br />在网上看了很多类似的文章,但都有欠缺,现在把自己的经验记录一下<br /><br />我的操作系统是Ubuntu 9.10。我发现完成以下安装后将系统升级为10.04会导致原有的安装部分失效,所以建议大家不要在9.10上安装,然后升级到10.04。<br /><br />1 安装 Maemo 5 SDK<br /> Nokia弄了个图形界面的安装程序,可以很方便的安装Maemo 5 SDK,Scratchbox。<br /><br /> 下载地址为http://www.f
2011-03-03 15:48:00
488
转载 标准C++类string的Copy-On-Write技术
1、 概念<br /> <br />Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其实你在干着别的诸如给班上的某位女生写情书之类的事,而一旦你的父母出来在你房间要检查你是否在复习时,你才真正捡起课本看书。这就是“拖延战术”,直到你非要做的时候才去做。<br /> <br />当然,这种事情在现实生活中时往往会出事
2010-12-09 16:42:00
466
转载 PIMPL模式
进行跨平台的移植工作,这其中有些地方是无法完全移植过来的,所以:需要我们封装一个接口类,在不同平台下让其有不同的实现。要做到这一点:有很多办法,条件编译啊之类的。但是如果有这种方法,说白了:其还是两份代码,仅仅是放到同一个文件中。参考Qt实现跨平台的办法,正好读了一片这方面的文章,发现PIMPL模式还是很适用的。 ---------------------------------------------------------- //public.h Class PrivateClass //前
2010-11-17 15:13:00
584
转载 Qt for symbian工程文件的一些特异写法
<br />symbian本身的工程文件不具有cross-platform特性,都是一些自己唯一的定义文件,像:*.mmp,*.pkg文件。而Qt得工程文件为*.pro。如何实现*.pro到*.mmp ,*.pkg文件的映射则值得总结。<br />1:添加库<br />对于添加库,无论是静态还是动态库,都需做两步:先是声名一下,其后是拷贝。二者仅仅是声名的方式不一样。<br /> <br />1:声名:<br /> <br />(1)动态库<br />symbian:LIBS += <b
2010-11-17 14:49:00
407
转载 Qt中如何保存 自画图片 为 图片文件
<br />先建一个QImage/QPixmap之类的图片对象,而后在其上边进行绘制,最后将这个图片对象保存为文件。<br />方式1:(直接使用图片类的save()函数)<br /> QPixmap pix(40,40);<br /> QPainter p(&pix);<br /> p.drawText(0,10,"Hello,World"); <br /> p.end();<br />
2010-11-17 14:34:00
12350
转载 如何在pro文件中添加库文件(Qt for symbian)
<br />在Qt for symbian开发时:有时需要将一些dll库文件拷贝到手机中,如果单纯是symbian编程则之需要修改下mmp文件和pkg文件,但如果是qt程序的话,我们只能通过修改Qt的pro文件来实现,下边是实现方式:<br />对于添加库,无论是静态还是动态库,都需做两步:先是声名一下,其后是拷贝。二者仅仅是声名的方式不一样。<br /> (以下代码都是要加到pro工程文件中的)<br />1:声名:<br />(1)动态库<br />symbian:LIBS += <br /
2010-11-17 13:13:00
816
转载 Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
<br />在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等。 <br /> 但是各种方法都有其注意事项,如果不注意则很容易陷入麻烦中。<br />1:setStyleSheet()<br /> 这个函数我一直很喜欢使用,因为只要写一句就可以实现效果,比其他方法都简单,但是其却有一个很值得注意的地方,也就是这个地方让我大吃苦头。<br /> 亦即:①:该函数只能用于设置有父窗口的
2010-11-17 12:09:00
615
转载 qt中文编码
<br />【Qt 编码简单实验】<br /> 首先,Qt中得QString 类对字符串进行了封装,其内部使用Unicode对传入的串进行编码。这样一来,QString就可以处理绝大多数的国际语言。将QString中的字符根据语言翻译的过程,也就是Qt 的Translater针对程序中使用含有的tr("XXXXX"),进行翻译的过程。由于QString的Unicode编码,和本地系统的编码不一定是一致的(比如系统采用的GB2312的编码)。这样的话,就不能直接使用类似Q
2010-11-16 14:19:00
505
转载 Qt的内存管理
<br />在QT的程序中经常会看到只有new而不delete的情况,其实是因为QT有一套回收内存的机制,主要的规则如下:<br />1.所有继承自QOBJECT类的类,如果在new的时候指定了父亲,那么它的清理时在父亲被delete的时候delete的,所以如果一个程序中,所有的QOBJECT类都指定了父亲,那么他们是会一级级的在最上面的父亲清理时被清理,而不用自己清理;<br />2.程序通常最上层会有一个根的QOBJECT,就是放在setCentralWidget()中的那个QOBJECT,这个QOB
2010-11-09 23:29:00
363
转载 经过使用验证的QString转char* 方法
<br />最近使用QT作保存数据的时候选择保存路径的时候让我挺费脑筋,特别是包含中文的路径,如下面的selSaveFilePath:<br />QString selSaveFilePath = “/C:/中国/北京/qt”;<br />转换为char*的时候出现了char* cSavePath = “/C:/???//???//qt”;<br />这肯定是没有转换成功,保存数据的时候程序直接over了。 下面是经过测试能够正确转换的方法:<br />QString SaveFilePath = selS
2010-11-07 23:20:00
412
转载 为什么Qt不用模板来实现信号和槽?
<br />一个简单的答案是,当初Qt被设计的时候,因为各种各样的编译器的不充分,所以在多平台应用程序中完全使用模板机制是不可能的。甚至今天,许多被广泛使用的C++编译器在使用高级模板的时候还是有问题的。例如,你不能安全地依靠部分模板的示例,这对一些不平常的问题领域是必要的。因此Qt中模板的用法不得不保守。记住Qt是一个多平台的工具包,在Linux/g++平台上的进步不一定能够在其它情况下获得改进。<br /><br />那些在模板执行上比较弱的编译器终将得到改进。但是,即使我们所有的用户以极好
2010-10-29 15:10:00
956
原创 What I have done
1、给Firfox更新组件 工具->附加组件->查找更新,在Mozilla网站上查找合适的组件下载。2、给面板的“位置”栏添加书签 使用文件浏览器的 书签->添加书签 操作3、给ls创建别名 打开~/.bashrc文件,找到相关语句,并添加下面一行命令 $ alias ll='ls -al'4、把终端加到右键菜单中 $ sudo apt-get install nautilus-open-terminal 5、消除终端响铃和系统滴滴声 打开终端, 编辑->
2010-08-15 06:54:00
598
原创 ubuntu快速搭建LAMP
<br />ubuntu 搭建LAMP<br /><br />1、安装apache<br /> $ sudo apt-get install apache2<br /> 然后运行Apache,命令如下所示:<br /> $ sudo /etc/init.d/apache2 restart<br /> //Apache在安装期间将会新建一个目录:/var/www,该目录是该服务器中存放文档的根目录。<br /> //只要在浏览器的地址栏输入http://localhost/或机
2010-08-15 06:52:00
375
原创 ubuntu8.04下安装PHP5
安装的软件有: curl-7.16.2.tar.gz libxml2-2.6.26.tar.gz zlib-1.2.5.tar.gz jpeg6.v6b.tar.gz libpng-1.2.44.tar.gz freetype-2.1.9.tar.bz2 gd-2.0.33.tar.gz php-5.2.14.tar.gz注意这些软件的安装步骤以及先后顺序,不要乱。特别是jpeg,png,freetype和gd库。1、安装curl $ tar
2010-08-11 05:41:00
598
原创 C语言实现八种基本排序(三)
<br />heap_sort.c<br />#include <stdio.h>//the value of heapSize is belong 0 and (length - 1).int heapSize = 0;//get the left index of parentint Left(int parent){ return ((parent << 1) + 1);}//get the right index of parentint Right(int
2010-08-08 20:28:00
366
原创 C语言实现八种基本排序(四)
<br />radix_sort.c<br />#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>//return the max number of a[]int find_max(int *a, int len){ int i, max = a[0]; for(i = 1;i < len;i++) { if(max < a[i])
2010-08-08 20:28:00
337
原创 C语言实现八种基本排序(二)
<br />1、merge_sort.cpp: 自顶向下,使用递归<br />#include <stdio.h>//#include <stdlib.h>using namespace std;void merge(int *a,int *temp,int lPos,int rPos,int rEnd){ int i,lEnd,tempPos,cout; lEnd = rPos - 1; tempPos = lPos; cout = rEnd - l
2010-08-08 20:26:00
274
原创 C语言实现八种基本排序(一)
sort.c#include //直接选择排序(选择排序)void select_sort(int *a, int len){ int i, j, temp, addr; for(i = 0;i
2010-08-08 20:22:00
400
原创 ubutu8.04下安装配置apache2
1、在Apache官网上下载httpd-2.2.16.tar.gz 2、编译安装apache2 $ tar -zxvf httpd-2.2.11.tar.gz $ cd httpd-2.2.16 //进入安装包 # ./configure / //配置 --prefix=/usr/local/apache / //定义安装目录 --enable-so / //apache核心装载DS
2010-08-04 18:42:00
666
原创 ubutu8.04下安装配置mysql5.0.7
1、获取软件包 $ wget http://mirror.provenscaling.com/mysql/enterprise/source/5.0/mysql-5.0.70.tar.gz 2、编译安装mysql # groupadd mysql //建立组mysql # useradd -g mysql -s /bin/false -M mysql //建立用户mysql # tar -zxvf mysql-5.0.70.tar.gz
2010-08-04 13:24:00
619
转载 MySQL的常用操作 (转)
<br /> 一、MySQL的常用操作 <br /> 注意:MySQL中每个命令后都要以分号;结尾。 <br /><br /> 1、显示数据库 <br /> mysql> show databases; <br /> +----------+ <br /> | Database | <br /> +----------+ <br /> | mysql | <br /> | test | <br />
2010-08-04 10:00:00
210
转载 7条大型网站设计和维护的关键技巧(转)
<br /><br />Collis Ta'eed曾写过一篇博文《7 Crucial Tips for Designing and Maintaining a Large Site 》,为我们分享了大型网站设计及维护的关键技巧,alswl已将此文译成中文,现转载于此,以便大家学习。全文如下:<br />项目范围和规模各不相同,他们带来的挑战各不相同一样。作为一个独立的网页设计师,我最大的职责就是负责FlashDen。随着成千上万的活动用户聊天,上传和购物,网站处理着大额的金钱和巨大的流量。<br />设计,
2010-07-31 09:09:00
442
转载 云存储(转)
<br />云存储(cloud storage)这个概念一经提出,就得到了众多厂商的支持和关注。Amazon在两年前就推出的Elastic Compute Cloud(EC2:弹性计算云)云存储产品,旨在为用户提供互联网服务形式同时提供更强的存储和计算功能。内容分发网络服务提供商CDNetworks 和业界著名的云存储平台服务商 Nirvanix发布了一项新的合作,并宣布结成战略伙伴关系,以提供业界目前唯一的云存储和内容传送服务集成平台。半年以前,微软就已经推出了提供网络移动硬盘服务的Windows Liv
2010-07-28 11:11:00
708
转载 shell中的变量(转)
<br />变量不需要声明在shell中,对一个变量赋值就像这样 myvar='hello world',注意的是=号2端不要有空格,这和我们JAVA中为了程序好看常常带空格不一样,这里有空格,你就会发现这个变量用不了。<br /><br />1变量<br />上面是变量的声明,如果你想引用这个变量那么他的方式是$myvar,在之前带上$符号,下面写一个简单的例子<br />#!/bin/shmyvar='hello world'echo $myvarexit 0 这就是一个很简单的
2010-07-28 11:09:00
507
转载 关于shell 中return用法解释(转)
1、return命令会使得一个函数返回.return命令会返回一个单一的数字参数, 而这个数字参数在调用这个函数的脚本中是可见的.如果没有指定返回参数,return在默认情况下会返回上一次命令的返回代码。2、了解一个概念:return value ﹗我们在 shell 下跑的每一个 command 或 function ,在结束的时候都会传回父行程一个值,称为 return value 。在 shell command line 中可用 $? 这个变量得到最"新"的一个 return value
2010-07-28 11:04:00
22393
1
转载 一些重要的算法(转)
<br /> A*搜寻算法<br />俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。Beam Search<br />束搜索(beam search) 方法是解决优化问题的一种启发式方法,它是在分枝定界方法基础上发展起来的,它使用启发式方法估计k 个最好的路径,仅从这k 个路径出发向下搜索,即
2010-07-23 21:29:00
457
转载 如何进行网站优化(转)
<br />不管是公司网站,还是个人网站,都会有一个网站优化推广的过程。这是一个系统工程,要想把网站做成功,做强大,有必要首先对网站优化作一个全方位的了解。<br />一.网站优化有什么目的?<br /> 简单的说,就是要把一个网站的内容、表现形式等等对用户交代清楚,以便达到推广宣传的最佳效果。需要考虑关键词、链接、代码、文字描述等的合理组合,以及网站功能、网页布局、结构等的合理搭配,以最终实现在搜索引擎中提升排名的目标。<br /> 我们可以把优化目的大致分为三个方
2010-07-21 21:39:00
281
转载 你的成功在于你每天养成的习惯(转)
<br />要成功,就马上准备有所付出吧!这就是每天你应该养成的习惯。 <br />1、不说“不可能”; <br />2、凡事第一反应: 找方法,不找借口; <br />3、遇到挫折对自己说声:太好了,机会来了! <br />4、不说消极的话,不落入消极的情绪,一旦发生立即正面处理; <br />5、凡事先订立目标; <br />6、行动前,预先做计划; <br />7、工作时间,每一分、每一秒做有利于生产的事情; <br />8、随时用零碎的时间做零碎的事情; <b
2010-07-21 21:28:00
220
转载 65个职场很有技巧的回答(转)
<br />1、请你自我介绍一下你自己?<br />回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”,企业喜欢有礼貌的求职者。<br /><br />2、你觉得你
2010-07-07 13:35:00
427
转载 如何生成比较像样的假数据(转)
<br /><br /> 问题<br />在做项目的时候经常会遇到这样的问题:根据数据模型建立了数据库,但是数据库中却没有数据,在给客户做Demo的时候必须要一条一条的添加假数据,而且这些假数据还得像模像样的,不能乱输入,尽是看不出任何意义的“aaaaa”、“ttttttttttttt”、“123123”、“是打发斯蒂芬”这样的数据。已经做好了一个系统,并且上线给部分客户使用了,现在要将该系统推广到所有的客户,所以需要做一个虚拟客户的系统,系统中需要有许多像样的数据,但是由于保密方面的原因,原有客户的数据必
2010-07-07 13:31:00
351
转载 关于UI设计的10 个问题(转)
<br />UI 设计的魅力在于,你不仅需要适当的技巧,更要理解用户与程序的关系。一个有效的用户界面关注的是用户目标的实现,包括视觉元素与功能操作在内的所有东西都需要完整一致。为了实现这个目标,你需要问自己 10 个最基本的问题。1. 你的 UI 是否高度一致?<br /><br />用户来到你的站点,脑子里会保持着一种思维习惯,你的 UI 需要保持一致,以免用户的思维方向被打乱。比如,如果你的某个品目下的产品可以拖放到购物车,那你站点中所有产品都应该可以这样操作。将按钮放到不同页面相似的位
2010-07-06 12:24:00
287
转载 Discuz!NT 数据库读写分离方案(转)
<br /><br />目前在Discuz!NT这个产品中,数据库作为数据持久化工具,必定在并发访问频繁且负载压力较大的情况下成 为系统性能的‘瓶 颈’。即使使用本地缓存等方式来解决频繁访问数据库的问题,但仍旧会有大量的并发请求要访问动态数据,虽然 SQL2005及2008以上版本中性能不断提升,查询计划和存储过程运行得越来越高效,但最终还是 要面临‘瓶颈’这一问 题。当然这也是许多大型网站不断研究探索各式各样的方案来有效降低数据访问负荷的原 因, 其中的‘读写分离’方案就是一种被广泛采用的方案。<br /
2010-06-26 18:58:00
458
转载 Qt中如何保存自画图片为图片文件(转)
总体思路:先建一个QImage/QPixmap之类的图片对象,而后在其上边进行绘制,最后将这个图片对象保存为文件。方式1:(直接使用图片类的save()函数)QPixmap pix(40,40);QPainter p(&pix);p.drawText(0,10,"Hello,World");p.end();pix.save("a.png"); 方式2:(创建文件,向里边写图片数据) QImage iim(500,1900,QImage::Format_RGB32);QPainter pa
2010-06-14 16:58:00
1925
转载 Qt for symbian工程文件的一些特异写法(转)
symbian本身的工程文件不具有cross-platform特性,都是一些自己唯一的定义文件,像:*.mmp,*.pkg文件。而Qt得工程文件为*.pro。如何实现*.pro到*.mmp ,*.pkg文件的映射则值得总结。1:添加库对于添加库,无论是静态还是动态库,都需做两步:先是声名一下,其后是拷贝。二者仅仅是声名的方式不一样。1:声名:(1)动态库(这里我加的是名为fbscli的动态库)symbian:LIBS += MMP_RULES += "LIBRARY fbscli.lib"(2)静态库(这
2010-06-14 16:49:00
419
转载 Qt与symbian特定格式类对象的转换(转)
1:FbsBitmap转为QImage应用场景:当使用摄像头时:拍摄的图像都是FBsBitmap,而如果要想让其显示在QWidget上,则需要首先将其转换成QImage格式。参数说明:aBitmap是传入参数,aImage是传出参数,当动态拍摄(相当于摄像)时:aStep为4; 当capture拍摄静态图片时:aStep为3.void FbsBitmapToQImage(CFbsBitmap* aBitmap,QImage* aImage,TInt aStep){ int aHeight=aBi
2010-06-14 16:27:00
540
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人