- 博客(73)
- 资源 (20)
- 收藏
- 关注
转载 实现一个无法被继承的C++类
一个类不能被继承,也就是说它的子类不能构造父类,这样子类就没有办法实例化整个子类从而实现子类无法继承父类。我们可以将一个类的构造函数声明为私有,使得这个类的构造函数对子类不可见,那么这个类也就不能继承了。但是,这引出一个问题,客户程序岂不是也无法实例化这个类了?OK,让我们参考一下Singleton模式,用一个static函数来帮助创建这个类的实例,问题就解决了!class CPare
2012-12-17 22:10:01
844
转载 一串首尾相连的珠子(m 个),有N 种颜色(N<=10),设计一个算法,取出其中一段,要求包含所有N 中颜色,并使长度最短。并分析时间复杂度与空间复杂度。
思路:先从index=0处搜索,每检查一颗珠子,响应的颜色数量+1,如果是新的颜色则总颜色数+1. 当颜色总数为n时,找到第一个满足条件的连续序列。 1>从该序列起始处搜索,若搜索处的颜色数量不为1,则表明该串还有别的珠子有该颜色,继续往前搜索并更新该序列,起始索引位置+1.
2012-12-15 22:18:38
5363
转载 Windows如何打包Qt程序 .
Windows如何打包Qt程序很多Qt爱好者想发布自己的Qt软件,但却发现在其他没有安装Qt SDK的机器上无法运行,这就是本文想要说明的问题。现在网上大部分软件都要发布自己开发的应用程序,都会打包到exe文件中,待安装完exe文件后,就会生成很多小文件,其实原理都一样,只是各自使用的打包工具不能罢了。本文主要介绍在Windows平台如何打包自己的Qt程序,相对比较简单的,这并没有正规
2012-11-27 19:43:50
1137
转载 修改Qt程序的图标
windows环境下,在默认情况编译后生的可执行文件图标总是一个白色的小窗口,感觉不是很好看下面就说一下可执行文件的图标修改方法,如下:首先准备个ICO图标。例如:myappico.ico用记事本新建个文件里面就写一行:IDI_ICON1 ICON DISCARDABLE "myappico.ico"保存改名为 myapp.rc并把它和你的图标myappico.ic
2012-11-27 19:24:21
858
原创 Qt调用任意文件、QDesktopServices::openUrl奇异问题
QProcess *myProcess = new QProcess(); myProcess->start("xml/aaa.exe"); if(myProcess->state() == QProcess::NotRunning) { QMessageBox::about(this, tr("asdf"),
2012-11-25 15:50:21
5890
转载 Qt-----给Qt程序添加启动动画
一些应用程序启动很慢时,一般会在启动时显示一个画面,利用这种方法可以让程序启动时间不那么长。给Qt应用程序加一个启动画面很简单,需要使用的类是QSplashScreen,在窗口没有显示之前,QSplashScreen显示一个图片,他还可以在图片上显示文字信息提示用户当前程序初始化的进度。一般情况下,启动画面代码在main()函数中,加在调用QApplication::exec()之前 具体
2012-11-24 09:05:14
1252
转载 并查集
1、 概述并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。2、 基本操作并查集是一种非常简单的数据结构,它主要涉及两个基本操作,分别为:A. 合并两个不相交集合B. 判断两个元素是否属于同一个集合(1) 合并两个不相交集合(Union(x,y))
2012-10-22 20:36:18
697
转载 C中的位域
位域(位段)====节省空间,常在单片机编程中使用有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作
2012-10-22 10:42:12
787
转载 进程间的通信方式
进程间的通信方式 1、Windows消息传输对象 当开发界面程序时,特别是windows界面编程,消息尤为重要;相信开发过windows界面程序的人们,对PostMessage(),SendMessage(),PostThreadMessage()不是很陌生,各个窗口基本上都可以通过这三个函数实现各种消息的传递,从面达到各个窗口之间的通信;窗口可以通过这三个函数向
2012-10-21 16:15:20
1349
转载 大端小端(Big- Endian和Little-Endian)
在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先 从字节序说起。 一
2012-10-16 07:48:45
825
转载 TCP/IP 三次握手
TCP/IP模型如下图所示:1.首先客户端通过向服务器端发送一个SYN来建立一个主动打开,作为三路握手的一部分。(同步位为1)2. 然后服务器端应当为一个合法的SYN回送一个SYN/ACK。(同步位和确认位都为1)3. 最后,客户端再发送一个ACK。这样就完成了三路握手,并进入了连接建立状态。(确认位位1)为了更好的使大家了解这一过程,我们通过抓包试验来具体分析。我
2012-10-11 09:50:41
1178
转载 OSI/ISO七层参考模型及各层的功能和协议
物理层 物理层是OSI/ISO的第一层,它虽然处于最底层,却是整个开放系统的基础。物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。 物理层的主要功能 为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成.一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接.所谓激活,就是不管有多少物理媒体参与,都要在
2012-10-11 09:42:20
10258
原创 Qt之UDP的网络广播例子
UDP 用户数据报协议,是一种轻量级、无连接,不可靠,数据报的传输层协议。一般用在短消息、广播消息等中,本文中是用在广播定时发送消息中。 注意还是要在.pro中加入 QT += network广播定时发送给用户数据:1、UDP的服务器端 先创建一个QUdpSocket对象,再创建一个定时器QTimer每秒发送一次数据,最后利用QUdpSocket的writ
2012-10-08 22:22:46
16482
7
原创 Qt查看主机信息如ip/hardware address/netmask等
注意要在.pro中添加QT += network 1、通过QHostInfo获取主机名,在通过主机名可以获取ip2、通过QNetworkInterface可以获取本机的所有网络接口,即可以获取接口中的name,hardware address3、又可以通过网络接口获取网络地址如IP,NETMASK等,即QNetworkInterface的成员函数addressEntries()
2012-10-08 21:46:52
4025
转载 杨氏矩阵问题
杨氏矩阵问题问题描述如果一个矩阵每一行每一列都严格单调递增,我们称该矩阵为杨氏矩阵(Young Tableau)。对于杨氏矩阵(a[m][ n]),通常会涉及两个问题:(1) 怎样在杨氏矩阵中查找某个元素X?(2) 怎样在杨氏矩阵找第k大的数?解决方案杨氏矩阵是一种非常巧妙的数据结构,它既可以用来当堆,又可以用来当做平衡树。 (1) 问题1求解
2012-10-05 15:55:45
1948
转载 Qt 无边框、透明、可移动、的个性窗体案例详解
很多朋友都问透明的效果怎么做,为什么自己做的无边框窗体不可移动,一个个回答的很累,干脆写出来分享下好了,我只用代码说话。 main.cppint main(int argc, char *argv[]){ QApplication::setStyle("cleanlooks"); QApplication a(argc, argv); login
2012-08-14 16:15:06
1347
原创 Qt对中文文件的简单加密解密
中文文件加密、解密,最简单的方法即可利用 QByteArrary::toBase64(),QByteArray::fromBase64()函数进行转码和解码进行简单加密、解密 即自己写个简单程序将中文文件加密后保存于新的文件中,再通过通过fromBase64解密显示。 代码简单如下://加密void encryption(const Q
2012-08-13 16:36:57
15759
1
原创 利用XML在QTextBrowser显示带图片的文件
XML简介(自C++ GUI Qt 4编程(第二版)第16章XML): XML(eXtensible Markup Language,可扩展标记语言)是普遍用于数据交换和数据存储的一种多用途文本文件格式。XML首先是由万维网协会(World Wide Web Consortium,W3C)作为SGML的一个替代品来开发的。它的语法规则与HTML相似,不过XML是一种用于语言分析的语
2012-08-13 16:17:01
5129
转载 C++ 泛型 理解
为什么泛型泛型编程(Generic Programming)最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器库。所谓通用的标准容器库,就是要能够做到,比如用一个List类存放所有可能类型的对象,这样的事情;熟悉一些其它面向对象的语言的人应该知道,如Java里面这是通过在List里面存放Object引用来实现的。Java的单根继承在这里起到了关键的作用。然而单根继承对
2012-07-23 09:32:06
1197
转载 C++类型转换操作符之间的区别
传统C语言的内部类型转换: C语言传统的转化很简单。 比如: double d=5.0; int a=(int)d; 这个感觉和java差不多。C++有四个内部类型转换操作符:const_cast,reinterpret_cast,static_cast,dynamic_cast。const_cast 用法:const_cast
2012-07-08 18:08:12
931
原创 Qt事件处理小应用之KeyGame
C++ GUI QT4第7章事件处理学到这章,自己就想弄个字母按键的游戏的程序,即加强对事件处理的理解! 游戏界面: 游戏说明:本游戏为字母按键游戏,即可练习对字母按键的熟练度。1、游戏开始以1S的速度下降,每次一行中出现字母数为1-2个; 每按键对的次数增加50,即下降速度增加0.1s;2、当丢失20个时,即游戏结束;可选择Restart键,重新
2012-06-04 23:58:17
978
转载 C++中Overload、Overwrite及Override的区别
Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。Override(覆盖):是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相
2012-05-23 20:27:31
2174
转载 康托展开
来自百度百科:X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,a为整数,并且0康托展开的公式 把一个整数X展开成如下形式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!+a[1]*0! 其中,a为整数,并且0<=a[i]<
2012-05-07 16:59:57
2478
转载 STL实现的底层数据结构简介
C++ STL 的实现:1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问4.stack 底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限
2012-05-06 09:31:29
838
原创 Qt计算器
This is simply caculator that was based on Qt.This ui is base on window caculator:Because of my ability is limited, caculator must have a few bug.You can download on it:http://downlo
2012-03-27 16:34:11
2335
转载 01背包、完全背包、多重背包、混合三种背包问题
P01: 01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f
2012-03-20 20:20:13
1180
转载 QT设置QPushButton的Text字体颜色
调色板类QPalette QPalette类包含了Qt窗口不见的颜色组(collor group);1.Active组,该组的颜色用户当前活动的(active)窗口,即具有键盘或鼠标焦点的窗口;2.Inactive组,该组用语其他的窗口;3.Disabled组,该组用语窗台为不可用的(disabled)的子窗口部件(不包含窗口).所有Qt窗口部件都拥有一个调色板并使用它绘制
2012-03-05 16:18:04
26036
原创 Door in wall
1. 你面对一堵左右无限延伸的墙;2. 该墙有且只有1扇门,它在离你 n 步远的地方;3. 你不知道 n 的大小,也不知道门在你左边还是右边;4. 你一次能够向左或者向右走一步,你只有走到门所在的位置才能出去。请设计一个O(n)的算法,找到这扇门。算法思路如下:按一下顺序走: 先向左走1步,再向右走2步,再向左走4步....每次改变方向,且每次
2012-02-24 18:37:19
946
原创 MFC 小游戏之猜数字
这个游戏简单而有趣,在做这个游戏中,又对MFC的一些知识更为了解了,又学到了不少东西。感兴趣的筒靴可以下载源代码看看!游戏规则请看下面的说明界面截图!因水平有限,不好之处请见谅!源代码下载地址:http://download.csdn.net/detail/hai8902882/3844905游戏以喜洋洋的图为背景,游戏界面截图:
2011-11-26 21:52:53
3774
2
转载 MFC界面避免闪烁问题
本文是我在做MFC贪吃蛇时所学到的。大家可以通过我那篇MFC贪吃蛇的代码一起来理解更为好些。我做的界面是每隔多少秒来刷新一次,虽然用了双缓冲,但是还要OnEraseBkgnd消息函数的帮忙。因为每次调用OnPaint()或OnDraw()函数时,他会自动刷新背景哦,所以界面还是有点闪烁的。而这个消息函数正好解决了这个问题,而这2方面的资料如下所写的,都是我百度找的很
2011-11-17 17:08:52
8775
原创 MFC 小游戏之贪吃蛇
弄了控制台的贪吃蛇等游戏后,学了一些MFC,即马上去弄MFC的贪吃蛇。写的时候由于学的MFC视频和实际操作还是有很大区别的,很多东西还是要自己去查MSDN或百度才知道的,在这里次MFC贪吃蛇中学到了很多知识!做出来后发现界面有闪烁的显现,后有前辈说可以采取双缓冲去避免闪烁,即百度查了不少这方面的资料,自己编写后还是闪烁,后问前辈是否写错,前辈说未写错,我就继续找度娘,找了很久没弄出来,最后就去cs
2011-11-17 16:59:27
7243
原创 C++ 小游戏之推箱子
做完C的贪吃蛇游戏后,感觉还不错,刚好记得在HDU上做过一道关于推箱子游戏的算法题目,即双BFS。所以我决定来做做C++的小游戏推箱子,由于刚学C++,对C++还是不很熟练,但是思路还是很清楚的,编写代码还是很舒服的。! 现在晒晒我的代码和详细解释,希望多交流~!//*******************************************************
2011-11-16 12:51:09
16038
10
原创 C语言 小游戏之贪吃蛇
还记得很久以前听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,觉得很难,根本没什么思路。前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来。现在大三,经过了这一年半的编程,现在觉得这个C语言的贪吃蛇还是比较简单的,花的时间不很多!我觉得主要是思路正确,基本上就米什么大的问题。 现在贴上我的代码和我的详细解释,希望大家多交流。首先说下我这个贪吃蛇
2011-11-16 12:45:17
27934
2
java练习之模拟STRUTS,我的LOGICER
2014-01-25
java练习之XML读取
2014-01-25
JS-SVG关系图
2013-11-09
MFC小游戏之贪吃蛇
2011-11-21
C++推箱子游戏
2012-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅