自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

萧别离(RenH)

大道至简,大爱至纯——欢迎访问我的博客,欢迎批评和指正

  • 博客(1)
  • 资源 (12)
  • 收藏
  • 关注

原创 2017年国庆随笔----- 心理学随笔

在此国庆中秋双节之际,花几个小时,写篇关于心理学的随笔。 有人说笔会思考,我深表赞同,当你在写下自己的感悟和总结时,往往会有新的灵光突现。如果片刻的停留,能然你嗅到丝缕的馨香,那也是我莫大的荣幸。粗鄙文章,你我共飨。 以下是自己的观点: 一)      人人都该了解点心理学。 提起心理学,给人最直观的印象无非大致归为三类:一类是高大上学术类(如《心理学导论》,《当代教育心理学》等);一类是...

2017-10-03 18:15:17 715

fsl-gpu-sdk

飞思卡尔imx6 GPU 3D 操作例子。 请先读readme进行解压和安装

2018-12-20

ACM经典代码库

目录 一.数论 4 1.阶乘最后非零位 4 2. 模线性方程(组) 4 3. 素数表 6 4. 素数随机判定(miller_rabin) 6 5. 质因数分解 7 6. 最大公约数欧拉函数 8 二.图论_匹配 9 1. 二分图最大匹配(hungary邻接表形式) 9 2. 二分图最大匹配(hungary邻接表形式,邻接阵接口) 10 3. 二分图最大匹配(hungary邻接阵形式) 10 4. 二分图最大匹配(hungary正向表形式) 11 5. 二分图最佳匹配(kuhn_munkras邻接阵形式) 11 6. 一般图匹配(邻接表形式) 12 7. 一般图匹配(邻接表形式,邻接阵接口) 13 8. 一般图匹配(邻接阵形式) 14 9. 一般图匹配(正向表形式) 15 三.图论_生成树 16 1. 最小生成树(kruskal邻接表形式) 16 2. 最小生成树(kruskal正向表形式) 17 3. 最小生成树(prim+binary_heap邻接表形式) 19 4. 最小生成树(prim+binary_heap正向表形式) 20 5. 最小生成树(prim+mapped_heap邻接表形式) 21 6. 最小生成树(prim+mapped_heap正向表形式) 22 7. 最小生成树(prim邻接阵形式) 23 8. 最小树形图(邻接阵形式) 24 四.图论_网络流 25 1. 上下界最大流(邻接表形式) 25 2. 上下界最大流(邻接阵形式) 26 3. 上下界最小流(邻接表形式) 27 4. 上下界最小流(邻接阵形式) 29 5. 最大流(邻接表形式) 30 6. 最大流(邻接表形式,邻接阵接口) 31 7. 最大流(邻接阵形式) 32 8. 最大流无流量(邻接阵形式) 32 9. 最小费用最大流(邻接阵形式) 33 五. 图论_最短路径 34 1. 最短路径(单源bellman_ford邻接阵形式) 34 2. 最短路径(单源dijkstra_bfs邻接表形式) 35 3. 最短路径(单源dijkstra_bfs正向表形式) 35 4. 最短路径(单源dijkstra+binary_heap邻接表形式) 36 5. 最短路径(单源dijkstra+binary_heap正向表形式) 37 6. 最短路径(单源dijkstra+mapped_heap邻接表形式) 38 7. 最短路径(单源dijkstra+mapped_heap正向表形式) 39 8. 最短路径(单源dijkstra邻接阵形式) 40 9. 最短路径(多源floyd_warshall邻接阵形式) 40 六. 图论_连通性 41 1. 无向图关键边(dfs邻接阵形式) 41 2. 无向图关键点(dfs邻接阵形式) 42 3. 无向图块(bfs邻接阵形式) 43 4. 无向图连通分支(bfs邻接阵形式) 43 5. 无向图连通分支(dfs邻接阵形式) 44 6. 有向图强连通分支(bfs邻接阵形式) 44 7. 有向图强连通分支(dfs邻接阵形式) 45 8. 有向图最小点基(邻接阵形式) 46 七. 图论_应用 46 1.欧拉回路(邻接阵形式) 46 2. 前序表转化 47 3. 树的优化算法 48 4. 拓扑排序(邻接阵形式). 49 5. 最佳边割集 50 6. 最佳顶点割集 51 7. 最小边割集 52 8. 最小顶点割集 53 9. 最小路径覆盖 55 八. 图论_NP搜索 55 1. 最大团(n小于64)(faster) 55 2. 最大团 58 九. 组合 59 1. 排列组合生成 59 2. 生成gray码 60 3. 置换(polya) 61 4. 字典序全排列 61 5. 字典序组合 62 6. 组合公式 62 十. 数值计算 63 1. 定积分计算(Romberg) 63 2. 多项式求根(牛顿法) 64 3. 周期性方程(追赶法) 66 十一. 几何 67 1. 多边形 67 2. 多边形切割 70 3. 浮点函数 71 4. 几何公式 76 5. 面积 78 6. 球面 79 7. 三角形 79 8. 三维几何 81 9. 凸包(graham) 89 10. 网格(pick) 91 11. 圆 92 12. 整数函数 94 13. 注意 96 十二. 结构 97 1. 并查集 97 2. 并查集扩展(friend_enemy) 98 3. 堆(binary) 98 4. 堆(mapped) 99 5. 矩形切割 99 6. 线段树 100 7. 线段树扩展 102 8. 线段树应用 105 9. 子段和 105 10. 子阵和 105 十三. 其他 106 1. 分数 106 2. 矩阵 108 3. 日期 110 4. 线性方程组(gauss) 111 5. 线性相关 113 十四. 应用 114 1. joseph 114 2. N皇后构造解 115 3. 布尔母函数 115 4. 第k元素 116 5. 幻方构造 116 6. 模式匹配(kmp) 118 7. 逆序对数 118 8. 字符串最小表示 119 9. 最长公共单调子序列 119 10. 最长子序列 120 11. 最大子串匹配 121 12. 最大子段和 122 13. 最大子阵和 123

2011-10-18

计算理论PPT

一. 本课的性质以及研究的内容 任何一门学科都有它的基础和它的基本问题,如物质的本质是什么?有机体生命的基础和起源是什么? 什么是计算机科学的基础?什么是计算机科学的基本问题? 诸如什么是形式语言?什么是计算?什么是能计算的?什么是不能计算的?什么是算法?如何评价算法?什么样的算法是可行的?这些问题能否判定?这又引出什么是可判定的?什么是不可判定的? 这些问题就是计算理论要讨论的问题。 1.1 形式语言基本概念( 1 ) 1.2 文法概念( ) 1.3文法的分类( ) 2.1确定的有限自动机( 1 ) 2.2 不确定的有限自动( ) 2.3 具有ε转移的NFA(

2011-10-18

最小生成树的算法实现

//贪心算法 //最小生成树的kruskal的算法 #include "stdafx.h" #include<iostream> #include<algorithm> #include<vector> using namespace std; //int maxint=mar_maxint; class BinaryTree; class EdgeNode//边的数据结构 { private: int u,v;//边所在的顶点 double weight;//边的权值 friend ostream&operator<<(ostream&os,const EdgeNode&E); friend void Kruskal(vector<EdgeNode>&E,vector<BinaryTree>&B,vector<EdgeNode>&N); //friend bool maxless(const EdgeNode&E1,const EdgeNode&E2); public: EdgeNode(int u1=0,int v1=0,double weight1=0):u(u1),v(v1),weight(weight1){} bool operator<(const EdgeNode&E)const { return weight>E.weight; } };

2011-07-16

Linux C函数

Linux C函数 本手册由Linhan整理,编写。版权所有者为Linhan。 Linhan不保证所整理的内容正确. 您可以免费的使用、分发本手册。但未经Linhan的授权许可不得擅自进行篡改、反编译,及将其全部或部分用于商业用途。 本手册受著作权法和国际公约的保护,作者保留对本手册及本声明的最终修改权。 本手册的内容参考网络文档制作,原著作权归原作者所有。 本手册使用Mainsoft(R)的HTML Help格式制作。 如果你对本手册 有好的建议和意见,请与Linhan联系,让我们共同来完善。

2010-04-26

精通qt4编程(源代码)

初 级 篇 \第1章 Qt初步实践 2 \1.1 第一个Qt程序 2 \1.1.1 建立主程序 2 \1.1.2 建立工程 3 \1.1.3 编译/运行第一个Qt应用程序 8 \1.1.4 第一个Qt程序的代码分析 8 \1.2 使用Qt布局管理器 11 \1.3 关联操作 12 \1.4 小结 13 \第2章 对话框——QDialog 14 \2.1 自定义对话框 14 \2.1.1 建立新类 14 \2.1.2 添加子窗口部件 15 \2.2 加入主程序 22 \2.3 Qt内建(built-in)对话框 24 \2.4 小结 34 \第3章 基础窗口部件——QWidget 35 \3.1 Qt设计器绘制窗口部件 35 \3.1.1 Qt设计器基础 35 \3.1.2 绘制窗口部件 40 \3.2 程序中引入自定义窗口部件 47 \3.2.1 直接使用方式 47 \3.2.2 单一继承方式 49 \3.2.3 多继承方式 51 \3.3 Qt的信号和槽机制 53 \3.3.1 基本原理 53 \3.3.2 设计信号和槽 55 \3.3.3 信号和槽的自动关联 62 \3.4 窗口标志及几何布局 63 \3.4.1窗口标志 64 \3.4.2窗口部件的几何布局 66 \ \3.5 Qt样式表 74 \3.5.1 样式表语法 74 \3.5.2 样式表的应用 76 \3.6 Qt对象模型 79 \3.6.1 元对象系统 79 \3.6.2 属性系统 80 \3.6.3 对象树 83 \3.7 小结 86 \第4章 程序主窗口——QMainWindow 87 \4.1 QMainWindow主窗口框架 87 \4.2 Qt设计器绘制主窗口 88 \4.2.1 菜单 90 \4.2.2 工具栏 93 \4.2.3 中心部件 96 \4.3 代码创建主窗口 98 \4.3.1 创建资源文件 98 \4.3.2 定义主窗口类 98 \4.4 锚接部件 102 \4.5 状态栏 105 \4.6 实现文本编辑器功能 107 \4.7 多文档 118 \4.8 打印文档 119 \4.9 小结 120 \第5章 布局管理 121 \5.1 Qt布局管理器——QLayout 121 \5.1.1 Qt布局管理器简介 121 \5.1.2 布局管理器及窗口部件大小策略 \5.1.2 的应用 125 \5.2 分裂器部件QSplitter 132 \5.3 栈部件QStackedWidget 134 \5.4 工作空间部件QWorkspace 135 \5.5 多文档区部件QMdiArea 148 \5.6 小结 150 \ \中 级 篇 \第6章 2D绘图 152 \6.1 Arthur绘图基础 152 \6.1.1 绘图 152 \6.1.2 绘图设备 174 \6.2 坐标系统与坐标变换 175 \6.2.1 坐标系统 175 \6.2.2 坐标变换 175 \6.3 用不同的字体 177 \6.4 绘图路径——QPainterPath 180 \6.5 QImage与QPixmap绘图设备 182 \6.5.1 QImage 182 \6.5.2 Pixmap 183 \6.6 组合模式绘图 192 \6.7 Graphics View框架 200 \6.7.1 Graphics View体系结构 200 \6.7.2 Graphics View坐标系统 201 \6.7.3 深入Graphics View 202 \6.8 图形图像打印 208 \6.8.1 普通打印过程 208 \6.8.2 特殊窗口部件的打印 210 \6.9 小结 211 \第7章 拖放操作和剪贴板 212 \7.1 拖放操作 212 \7.1.1 拖放操作 212 \7.1.2 定义新的拖放操作类型 214 \7.1.3 Graphics View框架下的拖放 \7.1.3 操作 215 \7.2 使用剪贴板 217 \7.3 小结 218 \第8章 文件处理 219 \8.1 读写文本文件 219 \8.2 操作二进制文件 220 \8.3 临时文件 222 \8.4 目录操作和文件管理 222 \8.4.1 目录操作 222 \8.4.2 文件管理 224 \8.5 监视文件系统变化 225 \8.6 文件引擎 226 \8.7 小结 226 \第9章 网络 227 \9.1 FTP客户端 227 \9.2 HTTP客户端 235 \9.3 UDP应用 239 \9.4 TCP应用 243 \9.5 高级应用 253 \9.5.1 底层操作 253 \9.5.2 使用代理 256 \9.5.3 扩展Qt网络功能 256 \9.5.4 效率问题 260 \9.6 小结 260 \第10章 多线程 261 \10.1 启动一个线程 261 \10.2 线程互斥与同步 264 \10.2.1 临界区问题 265 \10.2.2 使用QMutex 265 \10.2.3 使用QSemaphore 266 \10.2.4 使用QWaitConditon 269 \10.3 线程的其他问题 271 \10.3.1 优先级问题 271 \10.3.2 死锁及优先级反转问题 274 \10.3.3 本地存储问题 275 \10.4 Qt的线程机制 276 \10.4.1 可重入与线程安全 276 \10.4.2 线程与事件循环 277 \10.4.3 线程与信号/槽机制 278 \10.4.4 多线程网络示例 279 \10.5 小结 282 \第11章 事件处理 283 \11.1 事件机制 283 \11.1.1 事件来源与类型 283 \11.1.2 事件处理方法 284 \11.2 事件处理器 285 \11.3 事件过滤器 290 \11.4 加快用户界面响应 292 \11.4.1 使用processEvents()函数 293 \11.4.2 使用定时器 294 \11.5 小结 296 \第12章 数据库 297 \12.1 连接数据库 297 \12.2 常用数据库操作 301 \12.2.1 使用SQL语句 302 \12.2.2 事务操作 304 \12.2.3 使用SQL模型类 304 \12.2.4 数据表示 308 \12.3 Qt数据库应用 310 \12.3.1 使用嵌入式数据库 310 \12.3.2 使用Oracle数据库 313 \12.4 小结 325 \第13章 Qt的模板库和工具类 326 \13.1 Qt容器类 326 \13.1.1 QList、QLinkedList和QVector 327 \13.1.2 QMap、QHash 332 \13.2 QString 334 \13.2.1 隐式共享 335 \13.2.2 内存分配策略 336 \13.2.3 操作字符串 336 \13.2.4 查询字符串数据 337 \13.2.5 字符串的转换 338 \13.3 QVariant 339 \13.4 Qt的算法 341 \13.5 正则表达式 342 \13.5.1 基本的正则表达式 342 \13.5.2 文字捕获 344 \13.6 小结 345 \高 级 篇 \第14章 XML 348 \14.1 DOM 348 \14.1.1 DOM入门 348 \14.1.2 使用DOM 348 \14.1.3 使用DOM写XML文件 352 \14.2 SAX 354 \14.3 基于流的XML API 359 \14.4 小结 365 \第15章 模型/视图结构 366 \15.1 模型/视图结构与MVC设计 \15.1 模式 366 \15.1.1 模型 366 \15.1.2 视图 367 \15.1.3 代理 368 \15.2 使用已有的模型视图类 368 \15.2.1 使用已有的模型和视图类 368 \15.2.2 QListWidget、QtreeWidget \15.2.2 和QTableWidget 370 \15.3 模型(Models) 381 \15.3.1 模型索引 381 \15.3.2 模型角色 382 \15.3.3 自定义模型 382 \15.3.4 代理模型 385 \15.4 视图(Views) 390 \15.4.1 自定义视图 390 \15.4.2 数据-窗口部件映射 390 \15.5 代理(Delegates) 396 \15.5.1 使用已有的代理 396 \15.5.2 自定义代理 396 \15.6 拖放与选中 401 \15.6.1 拖放操作 401 \15.6.2 选中模式 404 \15.7 小结 405 \第16章 高级绘图 406 \16.1 3D绘图——使用OpenGL 406 \16.1.1 创建OpenGL窗口 406 \16.1.2 着色 410 \16.1.3 3D和旋转 411 \16.1.4 纹理贴图 414 \16.2 SVG 417 \16.2.1 绘制SVG图形 418 \16.2.2 生成SVG文件 419 \16.3 小结 420 \第17章 进程与进程间通信 421 \17.1 使用QProcess 421 \17.2 Linux进程间通信 423 \17.3 新型进程间通信——D-Bus 425 \17.3.1 D-Bus简介 425 \17.3.2 安装QtDBus模块 427 \17.3.3 接口与适配器 429 \17.3.4 QtDBus应用实例 432 \17.4 小结 441 \第18章 Qt插件 442 \18.1 Qt插件开发基础 442 \18.2 Qt设计器插件 443 \18.2.1 使用Scratchpad 443 \18.2.2 提升自定义窗口部件 444 \18.2.3 Qt设计器插件开发 444 \18.3 编写数据库插件 451 \18.4 自定义风格插件 455 \18.5 小结 458 \第19章 脚本——QtScript 459 \19.1 执行ECMAScript脚本 459 \19.2 QtScript中的信号和槽 460 \19.3 使用JavaScript操作Qt对象 463 \19.4 基于Prototype的继承 467 \19.5 小结 467 \第20章 国际化 468 \20.1 Unicode与字符编码 468 \20.1.1 Unicode 468 \20.1.2 汉字编码 469 \20.1.3 编码转换 469 \20.2 Qt Linguist 471 \20.2.1 发布管理器 472 \20.2.2 翻译器 474 \20.2.3 加载翻译文件 476 \20.3 语言切换 477 \20.4 小结 477 \第21章 Qt单元测试框架 478 \21.1 QTestLib框架 478 \21.1.1 QTestLib 478 \21.1.2 第一个Qt单元测试 478 \21.2 数据驱动测试 480 \21.3 GUI测试 481 \21.2.1 仿真GUI事件 481 \21.2.2 重放GUI事件 483 \21.3 小结 484 \附录A Qt安装 485 \附录B Qt集成开发环境 492 \附录C qmake速查 501 \附录D 深入Qt源代码 506 \附录E Qt资源 512 序言/前言    前言 \两年前,当我们准备在Linux系统下开发GUI应用软件时,首先想到的就是选择一个GUI应用框架来简化开发。在三大GUI框架GTK+、Qt和wxWidgets 之间,我们选择了Qt 4工具包。作为重量级桌面系统KDE多年的坚实基础,Qt应该是经受了足够的考验。当我们准备编写自己的应用软件时,却发现图书市场上没有一本关于Qt 4的书籍,仅有的只是一些关于Qt 3的资料。由于Qt 3到Qt 4的变化很大,甚至源代码都不兼容,所以这些资料的参考价值并不是太大。于是,我们通过阅读Qt的assistant和examples来学习并使用Qt 4。在逐渐掌握Qt 4的过程中,我们萌发了编写一本关于Qt 4的书来帮助初学者入门的想法。最终,在电子工业出版社博文视点资讯有限公司的大力支持下,我们的想法终于得以付诸实施。 \关于Qt \Qt是挪威的Trolltech公司的旗舰产品,作为跨平台的应用程序框架,是开源的桌面系统KDE的基石。Google Earth,Skype,Opera,Adobe Photoshop Elements,Peforce Visual Client等软件都是基于Qt写成。自Trolltech公司1996年推出Qt 1.0版以来,Qt已经从2.x,3.x发展到了现在的Qt 4.3,本书就是基于最新的Qt 4.3写成。因为Qt 4框架设计得非常优秀,在2006年的第16届Jolt大奖上,Qt 4获得了类库、框架和组件类别的Jolt生产力奖。 \和Java的“一次编译,到处运行”跨平台不同的是,Qt是源代码级的跨平台,一次编写,随处编译。一次开发的Qt应用程序可以移植到不同的平台上,只需重新编译即可运行。Qt支持的平台有: \? Microsoft Windows,包括Windows 98/NT 4.0/2000/XP/Vista; \? UNIX/X11,包括Linux,Sun Solaris,HP-UX,HP Tru64 UNIX,IBM AIX,SGI IRIX等; \? Mac OS X,支持Mac OS X 10.3以上版本; \? 嵌入式Linux,包括支持framebuffer的所有Linux平台。 \Qt还支持嵌入式系统,Qt的嵌入式版本称为Qtopia Core,可以在多种处理器上运行,目标操作系统通常是嵌入式Linux。Qtopia Core应用程序直接使用framebuffer,而不是笨重的X Window系统。Qt相关的另一个产品——Qt Jambi,则是基于Qt库构建的,面向Java程序员的应用程序框架。另外,还有一些开源的在其他语言上的Qt绑定,如C#/Mono的绑定Qyoto,Python的绑定PyQt,Ruby的绑定QtRuby等。有了这些产品,编写Qt程序不再是C++程序员的专利了。 \Qt的发行版本有商业版和开源版。开源版遵循QPL(Q Public License)和GPL(GNU General Public License)协议,商业版则提供了一些特有的模块,如Windows平台上的ActiveQt框架,Oralce、DB2等商业数据库的驱动。本书主要介绍开源版的Qt 4.3。 \阅读本书的基础 \阅读本书的读者需要具有基本的C++程序设计知识,毕竟Qt是用C++编写的应用程序框架。如果要学习QtScript,还需要了解JavaScript。 \本书的结构 \本书共21章,每章讨论一个专题。章节安排上基本采用循序渐进、由浅到深的原则。但最后的高级篇中的章节没有很强的关联,可以按照随意的顺序阅读。每章内容及作者分述如下: \篇章 章 名 作者 内 容 简 介 页码 \初级篇 第1章 Qt初步实践 卢传富 建立了第一个较简单的Qt应用程序,在GUI用户界面中显示一行中文。 2 \ 第2章 对话框 \——QDialog 卢传富介绍了Qt的对话框类QDialog,实现了一个自定义的登录对话框,举例说明了Qt提供的内建对话框类的应用。 14 \ 第3章 基础窗口部件——QWidget 卢传富 \蔡志明首次引入Qt设计器的使用,绘制并实现了一个查找文件功能的部件,介绍了Qt应用程序中使用ui文件的基本方法以及Qt样式表;较深入地分析了Qt对象模型的一些基本知识,涉及信号和槽机制、Qt元对象系统、属性系统和对象树机制,以及部件类型和部件的几何布局等内容。 35 \ 第4章 程序主窗口—— QMainWindow 卢传富 Qt应用程序的主窗口是由多个部件/组件构成的框架,本章通过一个简单文本编辑器的例子,介绍了主窗口的菜单、工具条、中心部件、锚接部件和状态条,并通过Qt设计器绘制和手写代码两种方法实现了简单文本编辑器主窗口界面的排布和管理。 87 \ 第5章 布局管理 卢传富布局管理是GUI应用程序编程的一个重要方面。Qt提供了多种布局管理部件,包括Qt布局管理器、分裂器、栈部件、工作空间部件和多文档区部件等。本章一一介绍了这些部件,并举例说明了它们在图形用户界面编程中的应用。 121 \中级篇 第6章 2D绘图 蔡志明本章内容较多,包括Qt的绘图要素、图形变换与坐标系统、绘图设备、图像处理、图像打印等。最后讲解了Qt 4图形系统的模型视图框架——Graphics View框架。 152 \ 第7章 拖放操作与剪贴板 蔡志明 本章简要地说明了基于MIME的拖放操作和剪贴板的使用,关于Graphics View框架的拖放操作也在本章。 212 \ 第8章 文件处理 蔡志明介绍了Qt的文件处理,包括基于流的文本文件和二进制文件处理,文件信息和目录操作,目录以及文件的变化监控,文件引擎的编写。 219 \ 第9章 网络 李立夏介绍了Qt的网络处理,包括编写常见的FTP、HTTP、UDP和TCP程序,以及访问底层网络接口信息和扩展Qt网络模块功能的方法。 227 \ 第10章 多线程 李立夏介绍了Qt的多线程处理,包括两方面内容:传统的线程操作,以及与Qt事件机制相关的操作。这一章还涉及较多的基本概念,并逐一做了介绍。 261 \ 第11章 事件机制 李立夏介绍了Qt的事件处理模型,详细介绍了在Qt程序设计中处理事件的五种方法,并讨论了如何利用Qt事件机制加快用户界面响应速度。 283 \ 第12章 数据库 李立夏介绍了Qt的数据库处理,重点介绍了如何在Qt中使用SQL语句进行数据库操作和如何利用QSqlTableModel这类高层次类进行常见的数据库编程。 297 \ 第13章 Qt的模板库和工具类 卢传富 \蔡志明 Qt提供了丰富的模板库和工具类,本章只是介绍了部分内容。在这一章,重点介绍了Qt的容器类、QString和QVariant类,简介了Qt的算法和Qt正则表达式的使用。 326 \ \ \续表 \篇章 章 名 作者 内 容 简 介 页码 \高级篇 第14章 XML 蔡志明对Qt中的三种XML解析方式(DOM、SAX和基于流的解析)进行了比较和举例。还讲解了如何使用API写XML文件。 348 \ 第15章 模型/视图结构 蔡志明阐述了Qt的模型/视图结构,分别对模型视图的三个组成部分(模型、视图和代理)进行了介绍,演示了如何自定义这些组成部分,并简要说明了拖放以及选中操作。 366 \ 第16章 高级绘图 蔡志明叙述了在Qt中如何使用OpenGL绘图,对基本的OpenGL绘图进行了讲解,介绍了矢量图型文件SVG的读写操作。 406 \ 第17章 进程间通信 李立夏 介绍进程和进程间通信的知识,重点介绍了Qt中桌面环境下基于D-Bus的多进程应用程序开发。 421 \ 第18章 Qt插件 蔡志明 说明了Qt的插件系统,并对Qt Designer插件、数据库插件、风格插件进行了较详细的介绍。 442 \ 第19章 脚本——QtScript 蔡志明 这是Qt 4.3中引入的最新内容,使得Qt能够支持ECMAScript脚本。本章简要地举例说明了在Qt中如何使用脚本,如何将C++对象暴露给脚本。 459 \ 第20章 国际化 骆艳 本章包括编码的处理,Qt Linguist的使用步骤,动态语言切换的内容。 468 \ 第21章 Qt单元测试框架 蔡志明 本章阐述了如何使用QTestLib框架进行数据测试、GUI测试。 478 \ 附录A~E 蔡志明附录中包括Qt在Linux、Windows、Solaris上的安装,KDevelop、Eclipse集成开发环境的使用,qmake的基本应用,Qt源代码分析举例,Qt资源。 485 \如何获取源代码 \由于Qt是跨平台的,因此书中的内容应用能够在Windows、Linux、UNIX和Mac OS上运行,书中的程序可能是在下列三种平台之一上编写:Windows XP/Vista、Linux(SuSE、Fedora Core或红旗)以及Solaris 10 SPARC/X86。因此书中的屏幕截图可能来源于其中的任何一种操作系统。 \要获取本书的源代码,可以访问博文视点资讯有限公司网站获取: \ www.broadview.com.cn。 \致谢 \本书在写作出版的过程中,得到了电子工业出版社孙学瑛编辑的大力帮助,没有她细致的工作和有益的建议,本书难以最终出版,在此,作者向孙学瑛编辑表示诚挚的谢意。 \问题反馈 \欢迎广大读者和专家对本书提出建议和批评。如果您认为书有错误或对我们有什么建议,可以联系[email protected]。 \ \蔡志明 卢传富 李立夏 \2007年11月30日于武汉

2010-03-17

浙江大学 ACM 集训资料.pdf

1、 几何.........................................................................................................................25 1.1 注意.................................................................................................................25 1.2 几何公式.........................................................................................................25 1.3 多边形.............................................................................................................27 1.4 多边形切割.....................................................................................................30 1.5 浮点函数.........................................................................................................31 1.6 面积.................................................................................................................36 1.7 球面.................................................................................................................37 1.8 三角形.............................................................................................................38 1.9 三维几何.........................................................................................................40 1.10 凸包.................................................................................................................47 1.11 网格.................................................................................................................49 1.12 圆.....................................................................................................................49 1.13 整数函数.........................................................................................................51

2009-11-30

清华大学严蔚敏数据结构习题集(C版)答案.chm

. 本文是对严蔚敏《数据结构(c语言版)习题集》一书中所有算法设计题目的解决方案,主要作者为kaoyan.com计算机版版主一具.以下网友:siice,龙抬头,iamkent,zames,birdthinking等为答案的修订和完善工作提出了宝贵意见,在此表示感谢; 2. 本解答中的所有算法均采用类c语言描述,设计原则为面向交流、面向阅读,作者不保证程序能够上机正常运行(这种保证实际上也没有任何意义); 3. 本解答原则上只给出源代码以及必要的注释,对于一些难度较高或思路特殊的题目将给出简要的分析说明,对于作者无法解决的题目将给出必要的讨论.目前尚未解决的题目有: 5.20, 10.40; 4. 请读者在自己已经解决了某个题目或进行了充分的思考之后,再参考本解答,以保证复习效果; 5. 由于作者水平所限,本解答中一定存在不少这样或者那样的错误和不足,希望读者们在阅读中多动脑、勤思考,争取发现和纠正这些错误,写出更好的算法来.请将你发现的错误或其它值得改进之处向作者报告: [email protected]

2009-10-13

Windows操作系统.chm

Table of Contents | Index -------------------------------------------------------------------------------- Copyright Historical Perspective Foreword Acknowledgments Introduction Structure of the Book History of the Book Fourth Edition Changes Hands-On Experiments Topics Not Covered A Warning and Caveat Support About the Authors David Solomon Mark Russinovich Chapter 1. Concepts and Tools Windows Operating System Versions Foundation Concepts and Terms Digging into Windows Internals Conclusion Chapter 2. System Architecture Requirements and Design Goals Operating System Model Architecture Overview Key System Components Conclusion Chapter 3. System Mechanisms Trap Dispatching Object Manager Synchronization System Worker Threads Windows Global Flags Local Procedure Calls (LPCs) Kernel Event Tracing Wow64 Conclusion Chapter 4. Management Mechanisms The Registry Services Windows Management Instrumentation Conclusion Chapter 5. Startup and Shutdown Boot Process Troubleshooting Boot and Startup Problems Shutdown Conclusion Chapter 6. Processes, Threads, and Jobs Process Internals Flow of CreateProcess Thread Internals Examining Thread Activity Thread Scheduling Job Objects Conclusion Chapter 7. Memory Management Introduction to the Memory Manager Services the Memory Manager Provides System Memory Pools Virtual Address Space Layouts Address Translation Page Fault Handling Virtual Address Descriptors Section Objects Working Sets Logical Prefetcher Page Frame Number Database Conclusion Chapter 8. Security Security Ratings Trusted Computer System Evaluation Critiera The Common Criteria Security System Components Protecting Objects Account Rights and Privileges Security Auditing Logon Software Restriction Policies Conclusion Chapter 9. I/O System I/O System Components Device Drivers I/O Processing The Plug and Play (PnP) Manager The Power Manager Conclusion Chapter 10. Storage Management Storage Terminology Disk Drivers Volume Management Conclusion Chapter 11. Cache Manager Key Features of the Cache Manager Cache Virtual Memory Management Cache Size Cache Data Structures File System Interfaces Fast I/O Read Ahead and Write Behind Conclusion Chapter 12. File Systems Windows File System Formats File System Driver Architecture Troubleshooting File System Problems NTFS Design Goals and Features NTFS File System Driver NTFS On-Disk Structure NTFS Recovery Support Encrypting File System Security Conclusion Chapter 13. Networking Windows Networking Architecture Networking APIs Multiple Redirector Support Name Resolution Protocol Drivers NDIS Drivers Binding Layered Network Services Conclusion Chapter 14. Crash Dump Analysis Why Does Windows Crash? The Blue Screen Crash Dump Files Windows Error Reporting Online Crash Analysis Basic Crash Dump Analysis Using Crash Troubleshooting Tools Advanced Crash Dump Analysis Glossary Index

2009-10-04

windows程序设计第五版[源代码].rar

-------------------------------------------------------------------------------- 基础篇 1. 开始 …………………… WINDOWS环境 …………………… WINDOWS程序设计选项 …………………… 编写第一个WINDOWS程序 2.Unicode简介 …………………… 字符集简史 …………………… 宽字符和C …………………… 宽字符和WINDOWS 3. 窗口和消息 …………………… 自己的窗口 …………………… WINDOWS程序设计的难点 4. 输出文字 …………………… 绘制和更新 …………………… GDI简介 …………………… 滚动条 …………………… 建立更好的滚动 5. 图形基础 …………………… GDI的结构 …………………… 设备内容 …………………… 画点和线 …………………… 绘制填入区域 …………………… GDI映像方式 …………………… 矩形、区域和剪裁 6. 键盘 …………………… 键盘基础 …………………… 按键消息 …………………… 字符消息 …………………… 键盘消息和字符集 …………………… 插入符号(不是光标) 7. 鼠标 …………………… 鼠标基础 …………………… 显示区域鼠标消息 …………………… 非显示区域鼠标消息 …………………… 程序中的命中测试 …………………… 拦截鼠标 …………………… 鼠标滑轮 8. 定时器 …………………… 定时器入门 …………………… 定时器的使用:三种方法 …………………… 定时器用于时钟 …………………… 以定时器进行状态报告 9. 子窗口控件 …………………… 按钮类别 …………………… 控件与颜色 …………………… 静态类别 …………………… 滚动条类别 …………………… 编辑类别 …………………… 清单方块类别 10. 菜单及其它资源 …………………… 图标、光标、字符串和自订资源 …………………… 菜单 …………………… 键盘快捷键 11. 对话框 …………………… 模态对话框 …………………… 非模态对话框 …………………… 通用对话框 12. 剪贴簿 …………………… 剪贴簿的简单使用 …………………… 复杂的剪贴簿用法 …………………… 实作剪贴簿浏览器 -------------------------------------------------------------------------------- 图像篇 13. 使用打印机 …………………… 打印入门 …………………… 打印图形和文字 14. 位图和Bitblt …………………… 位图入门 …………………… 位图尺寸 …………………… 位块传输 …………………… GDI位图对象 15. 与设备无关的位图 …………………… DIB文件格式 …………………… 显示和打印 …………………… DIB和DDB的结合 16. 调色盘管理器 …………………… 使用调色盘 …………………… 调色盘动画 …………………… 调色盘和真实世界图像 …………………… DIB处理链接库 17. 文字和字体 …………………… 简单的文字输出 …………………… 字体的背景 …………………… 逻辑字体 …………………… 字体列举 …………………… 段落格式 …………………… 有趣的东西 18. Metafile …………………… 旧的 MetaFile 格式 …………………… 增强型 MetaFile -------------------------------------------------------------------------------- 进阶篇 19. 多重文件界面 …………………… MDI概念 …………………… MDI的范例程序 20. 多任务和多线程 …………………… 多任务的各种模式 …………………… WINDOWS的多线程处理 …………………… 线程同步 …………………… 事件信号 …………………… 线程区域储存空间(TLS) 21. 动态链接库 …………………… 动态链接库的基本知识 …………………… 各式各样的DLL讨论 22. 声音与音乐 …………………… WINDOWS和多媒体 …………………… 波形声音 …………………… MIDI和音乐 23. 领略Internet …………………… Windows Sockets …………………… WININET和FTP

2009-10-04

SGI-STL 源码以及 word 注解版

#include <stdcomp.h> #ifndef _RWSTD_NO_NAMESPACE namespace std { #endif // // Forward declare raw_storage_iterator // template <class OutputIterator, class T> class raw_storage_iterator; // // Non-modifying sequence operations. // template <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator last, Function f) { while (first != last) f(*first++); return f; } template <class InputIterator, class T> InputIterator find (InputIterator first, InputIterator last, const T& value) { while (first != last && *first != value) ++first; return first; } template <class InputIterator, class Predicate> InputIterator find_if (InputIterator first, InputIterator last, Predicate pred) { while (first != last && !pred(*first)) ++first; return first; } template <class ForwardIterator1, class ForwardIterator2, class Distance> ForwardIterator1 __find_end (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, Distance*) { Distance d, d2; __initialize(d,Distance(0)); __initialize(d2,Distance(0)); distance(first2,last2,d); if (!d) return first1; distance(first1,last1,d2); ForwardIterator1 save = last1; while (d2 >= d) { if (equal(first2,last2,first1)) save = first1; __initialize(d2,Distance(0)); distance(++first1,last1,d2); } return save; } template <class ForwardIterator1, class ForwardIterator2> ForwardIterator1 find_end (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2) { return __find_end(first1,last1,first2,last2, __distance_type(first1)); } template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate, class Distance> ForwardIterator1 __find_end (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred, Distance*) { Distance d, d2; __initialize(d,Distance(0)); __initialize(d2,Distance(0)); distance(first2,last2,d); if (!d) return first1; distance(first1,last1,d2); ForwardIterator1 save = last1; while (d2 >= d) { if (equal(first2,last2,first1,pred)) save = first1; __initialize(d2,Distance(0)); distance(++first1,last1,d2); } return save; } template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate> ForwardIterator1 find_end (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred) { return __find_end(first1,last1,first2,last2, pred,__distance_type(first1)); } template <class ForwardIterator1, class ForwardIterator2> ForwardIterator1 find_first_of (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2) { if (first2 == last2) return first1; ForwardIterator1 next = first1; while (next != last1) { if (find(first2,last2,*next) != last2) return next; next++; } return last1; } template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate> ForwardIterator1 find_first_of (ForwardIterator1 first1,ForwardIterator1 last1, ForwardIterator2 first2,ForwardIterator2 last2, BinaryPredicate pred) { if (first2 == last2) return first1; ForwardIterator1 next = first1; while (next != last1) { if (find_if(first2,last2,bind2nd(pred,*next)) != last2) return next; next++; } return last1; } template <class ForwardIterator> ForwardIterator adjacent_find (ForwardIterator first, ForwardIterator last) { if (first == last) return last; ForwardIterator next = first; while (++next != last) { if (*first == *next) return first; first = next; } return last; } template <class ForwardIterator, class BinaryPredicate> ForwardIterator adjacent_find (ForwardIterator first, ForwardIterator last, BinaryPredicate binary_pred) { if (first == last) return last; ForwardIterator next = first; while (++next != last) { if (binary_pred(*first, *next)) return first; first = next; } return last; } #ifndef _RWSTD_NO_CLASS_PARTIAL_SPEC template <class InputIterator, class T> _TYPENAME iterator_traits<InputIterator>::difference_type count (InputIterator first, InputIterator last, const T& value) { typename iterator_traits<InputIterator>::difference_type n = 0; //RW_BUG: fix for bts-42842 while (first != last) if (*first++ == value) ++n; return n; } template <class InputIterator, class Predicate> _TYPENAME iterator_traits<InputIterator>::difference_type count_if (InputIterator first, InputIterator last, Predicate pred) { typename iterator_traits<InputIterator>::difference_type n = 0; //RW_BUG: fix for bts-42842 while (first != last) if (pred(*first++)) ++n; return n; } #endif /* _RWSTD_NO_CLASS_PARTIAL_SPEC */ #ifndef _RWSTD_NO_OLD_COUNT template <class InputIterator, class T, class Size> void count (InputIterator first, InputIterator last, const T& value, Size& n) { while (first != last) if (*first++ == value) ++n; } template <class InputIterator, class Predicate, class Size> void count_if (InputIterator first, InputIterator last, Predicate pred, Size& n) { while (first != last) if (pred(*first++)) ++n; } #endif /* _RWSTD_NO_OLD_COUNT */ template <class InputIterator1, class InputIterator2> pair<InputIterator1, InputIterator2> mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2) { while (first1 != last1 && *first1 == *first2) { ++first1; ++first2; } pair<InputIterator1, InputIterator2> tmp(first1, first2); return tmp; } template <class InputIterator1, class InputIterator2, class BinaryPredicate> pair<InputIterator1, InputIterator2> mismatch (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate binary_pred) { while (first1 != last1 && binary_pred(*first1, *first2)) { ++first1; ++first2; } pair<InputIterator1, InputIterator2> tmp(first1, first2); return tmp; } template <class ForwardIterator1, class ForwardIterator2, class Distance1, class Distance2> ForwardIterator1 __search (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, Distance1*, Distance2*) { Distance1 d1; __initialize(d1, Distance1(0)); distance(first1, last1, d1); Distance2 d2; __initialize(d2, Distance2(0)); distance(first2, last2, d2); if (d1 < d2) return last1; ForwardIterator1 current1 = first1; ForwardIterator2 current2 = first2; while (current2 != last2) { if (*current1++ != *current2++) if (d1-- == d2) return last1; else { current1 = ++first1; current2 = first2; } } return (current2 == last2) ? first1 : last1; } template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate, class Distance1, class Distance2> ForwardIterator1 __search (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate binary_pred, Distance1*, Distance2*) { Distance1 d1; __initialize(d1, Distance1(0)); distance(first1, last1, d1); Distance2 d2; __initialize(d2, Distance2(0)); distance(first2, last2, d2); if (d1 < d2) return last1; ForwardIterator1 current1 = first1; ForwardIterator2 current2 = first2; while (current2 != last2) { if (!binary_pred(*current1++, *current2++)) if (d1-- == d2) return last1; else { current1 = ++first1; current2 = first2; } } return (current2 == last2) ? first1 : last1; } template <class ForwardIterator, class Distance, class Size, class T> ForwardIterator __search_n (ForwardIterator first, ForwardIterator last, Distance*, Size count, const T& value) { Distance d; __initialize(d, Distance(0)); distance(first, last, d); if (d < count || count <= 0) return last; Distance span = d - count; Size matches = 0; ForwardIterator current = first; while (current != last) { if (*current++ != value) { if (span < matches + 1) return last; span -= matches + 1; matches = 0; first = current; } else if (++matches == count) return first; } return last; } template <class ForwardIterator, class Distance, class Size, class T, class BinaryPredicate> ForwardIterator __search_n (ForwardIterator first, ForwardIterator last, Distance*, Size count, const T& value, BinaryPredicate pred) { Distance d; __initialize(d, Distance(0)); distance(first, last, d); if (d < count || count <= 0) return last; Distance span = d - count; Size matches = 0; ForwardIterator current = first; while (current != last) { if (!pred(*current++, value)) { if (span < matches + 1) return last; span -= matches + 1; matches = 0; first = current; } else if (++matches == count) return first; } return last; } // // Modifying sequence operations. // template <class InputIterator, class OutputIterator> OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result) { while (first != last) *result++ = *first++; return result; } template <class BidirectionalIterator1, class BidirectionalIterator2> BidirectionalIterator2 copy_backward (BidirectionalIterator1 first, BidirectionalIterator1 last, BidirectionalIterator2 result) { while (first != last) *--result = *--last; return result; } template <class ForwardIterator1, class ForwardIterator2> ForwardIterator2 swap_ranges (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2) { while (first1 != last1) iter_swap(first1++, first2++); return first2; } template <class InputIterator, class OutputIterator, class UnaryOperation> OutputIterator transform (InputIterator first, InputIterator last, OutputIterator result, UnaryOperation op) { while (first != last) *result++ = op(*first++); return result; } template <class InputIterator1, class InputIterator2, class OutputIterator, class BinaryOperation> OutputIterator transform (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryOperation binary_op) { while (first1 != last1) *result++ = binary_op(*first1++, *first2++); return result; } template <class ForwardIterator, class T> void replace (ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value) { while (first != last) { if (*first == old_value) *first = new_value; ++first; } } template <class ForwardIterator, class Predicate, class T> void replace_if (ForwardIterator first, ForwardIterator last, Predicate pred, const T& new_value) { while (first != last) { if (pred(*first)) *first = new_value; ++first; } } template <class InputIterator, class OutputIterator, class T> OutputIterator replace_copy (InputIterator first, InputIterator last, OutputIterator result, const T& old_value, const T& new_value) { while (first != last) { *result++ = *first == old_value ? new_value : *first; ++first; } return result; } template <class Iterator, class OutputIterator, class Predicate, class T> OutputIterator replace_copy_if (Iterator first, Iterator last, OutputIterator result, Predicate pred, const T& new_value) { while (first != last) { if(pred(*first)) *result++ = new_value; else *result++ = *first; ++first; } return result; }

2009-10-04

空空如也

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

TA关注的人

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