通用ORM的设计与实现

2022-09-20
阅读 6 分钟
5.8k
我们通用的ORM,基本模式都是想要脱离数据库的,几乎都在编程语言层面建立模型,由程序去与数据库打交道。虽然脱离了数据库的具体操作,但我们要建立各种模型文档,用代码去写表之间的关系等等操作,让初学者一时如坠云雾。我的想法是,将关系数据库拥有的完善设计工具之优势,来实现数据设计以提供结构信息,让json对象...

QT5写Tetris之AI机器人玩游戏

2021-05-22
阅读 4 分钟
3.3k
使用Qt5.12.9的QGraphicsItem来实现俄罗斯方块,使用简单的评估函数,实现AI机器人玩俄罗斯方块游戏。这是AI机器人的第一步,这个算法很简单,但很有效,大多数情况能消5百层以上,最近的为数不多的测试中,最高纪录已经消了超过2500层。在这个基础上,可以方便的积累原始数据,我希望能抽取模式,进行模式识别及至机器...

QT5写Tetris之使用Sqlite3实现游戏回放

2021-05-22
阅读 6 分钟
2.2k
使用Qt5.12.9的QGraphicsItem来实现俄罗斯方块,使用Sqlit3存储数据来进行游戏的回放,既然已经使用QT,就尽量用其组件,重写了原来的JSON封装及数据库操作接口实现。

Qt5之QGraphicsItem编写Tetris俄罗斯方块游戏

2021-05-06
阅读 6 分钟
4.1k
使用Qt5.12.9的QGraphicsItem来实现俄罗斯方块,现在是C++版本,下来还会有python版本,以及方便的接口,来接入算法,由机器人玩俄罗斯方块。

QFtp源码学习及目录下载

2021-02-06
阅读 4 分钟
2.7k
需要在QT5中进行FTP文件下载,并需要支持整目录下载,经过对比选择,最后决定使用Qt4中的QFtp来完成我们的需求。因此决定学习源码,看清结构,做到能真正解决所要面对的问题。

QT5编译使用QFtp

2021-02-02
阅读 3 分钟
4.6k
使用 QNetworkAccessManager 可以实现 Ftp 的上传/下载功能,但它没有提供例如list、cd、remove、mkdir、rmdir、rename 等功能。这种情况下,我们可以使用QFtp,需要下载源码、编译并处理一些坑。

Qt 插件编程实践

2021-01-28
阅读 4 分钟
3.7k
最近在用Qt做项目,在网上找插件编写的资料,没有完整的代码,要下载的资源都被传到需要积分的网站上了,感觉很不爽。因此把插件示例项目编写完整,并在github上开了一个qtDemo项目,写了这篇文章。作为一个拖砖项目,望大家在学习同时,不要忘记了分享的精神。这个项目我会把学习Qt的代码不断更新上来,若有同道者,请p...

sqlit3 数据库操作的实现与解析

2020-06-28
阅读 8 分钟
2.9k
选择官方c接口,实现Idb通用接口。具体的数据库操作,主要由两个函数ExecQuerySql和ExecNoneQuerySql来封装,底层的操作,主要使用sqlite3_prepare_v2来实现。

封装rapidjson用于数据库及网络数据传输

2020-06-28
阅读 5 分钟
2.8k
我要完成以json为数据媒介,来操作数据库和网络传输。查资料,发现rapidjson是比较流行的json库,并且速度快。但以我的使用方式,用起来非常麻烦,而且我的目的是数据交换。rapidjson非常普通看起来应该是值传输的操作,其实都是内存移动。这虽然能达到高效率的目的,但一不小心就会出错,而且写出来看着非常丑陋,所以...

c++关系数据库访问通用接口设计(JSON-ORM c++版)

2020-06-26
阅读 4 分钟
3.6k
重操C++旧业,习惯通常的数据库操作方式,因此抽时间,把JSON-ORM封装了一个C++版,现支持sqlit3与mysql,postgres已经做好了准备。

一道面试题,不用循环解循环问题

2015-10-10
阅读 1 分钟
3.4k
被作为『砖家』请去为一家公司把关面试题,这是一个他们比较得意的题目,我一看惊住了,咱也不会,呵呵!他们是想让面试者用递归来解这个问题,而我认为如果他们的目的是这样的话,这题没有任何意义。但若从考查发散思维的角度来看这个问题的话,让面试者想尽可能多的解决方法来解决它,到是一个不错的选择。

哈夫曼树(C++封装)

2015-01-08
阅读 5 分钟
7.7k
哈夫曼(Huffman)树又称最优二叉树。它是n个带权叶子结点构成的二叉树中,带权路径长度WPL最小的二叉树。因为构造这种树的算法是最早由哈夫曼于1952年提出的,所以被称之为哈夫曼树。

二叉排序树实现(C++封装)

2015-01-08
阅读 6 分钟
6.8k
它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树。

堆排序C++实现

2015-01-06
阅读 2 分钟
19.2k
堆排序属于选择排序范围,选择排序主要包括:直接选择排序和堆排序,直接选择排序很简单,与冒泡排序很相似,但减少了交换操作的次数,在小规模时,选择排序效率是比较高的。堆排序主要用在取前N个最大(小)值时。

快速排序算法C++实现

2015-01-05
阅读 3 分钟
13.3k
一天一个算法,边回想算法细节,边捡回C++,试验性程序,留作记念。 交换排序有:冒泡排序和快速排序 {代码...} 网上一兄弟写的快排cSharp类,留作参考: {代码...}

Windows 7 下用C++为node.js写扩展模块

2014-12-11
阅读 2 分钟
5k
前提: 安装好node.js、Python2.7与visual studio 2013。 过程: 首先安装GYP项目生成工具,npm install -g node-gyp 。 建立test目录,这是我们的工作目录,在此目录下再建一个src目录,用来存放C++源代码,另新建一个名为binding.gyp的文本文件,这是gyp的项目文件,内容如下: