C++
文章平均质量分 70
炎黄子孙__
星辰大海
展开
-
判定完全二叉树的非递归方法(C语言)
我们设立一个标志位flag,初值为0,用来表示异常情况的发生,当发生异常情况以后,进行++flag。在层序遍历异常情况后继的结点时,我们采取层序遍历的方式遍历结点,我们遍历结点的时候会遇到下面几种情况。.........原创 2022-07-16 16:14:17 · 590 阅读 · 0 评论 -
汉诺塔问题思路的证明
汉诺塔问题思路的证明。汉诺塔问题思路很简单,但为什么可行?本文使用了数学归纳法来证明该解题思路的可行性原创 2022-07-02 16:27:20 · 579 阅读 · 0 评论 -
Ackerman的非递归算法思路讲解
Ackerman的非递归算法的思路原创 2022-07-01 19:38:09 · 1392 阅读 · 0 评论 -
C++ 模拟键鼠详细总结
简介需要使用user32.dll#include <Windows.h>鼠标输入官方例程键鼠状态查询虚拟键码// 获取鼠标位置POINT p;GetCursorPos(&p);qDebug() << "cur mouse:" << p.x << "," << p.y;// 判断鼠标左键是否被按下if((GetAsyncKeyState(VK_LBUTTON)& 0x8000)? 1:0){ qDeb原创 2022-05-03 23:37:11 · 3780 阅读 · 0 评论 -
QT 使用全局钩子监听鼠标事件和键盘事件
简介include <windows.h>本版本使用的LL版,提供了获取虚拟键码,鼠标坐标等方法,比较全面。重要文档SetWindowsHookExA键盘监听: WH_KEYBOARD_LLLPARAM: PKBDLLHOOKSTRUCT鼠标监听: WH_MOUSE_LLLPARAM: PMSLLHOOKSTRUCThookhelper.h 和 hookhelper.cpp 考虑了移植性和多线程,所以写的复杂了许多,但是功能是全面的,且做成DLL也是比原创 2022-05-03 12:28:41 · 2703 阅读 · 4 评论 -
QT 通过动态加载DLL实现插件化
简介本文只针对Windows应用程序,因为需要显式加载插件,如果对移植有要求可以不看本篇文章了。Windows.h 文件中提供了显式加载DLL文件的方法,我们可以像JAVA一样规定一个接口,该接口为一个类,类内部全是虚方法,而该类的实现类及具体方法由DLL文件实现。这样,我们就可以动态更换或添加新的功能了。DLL项目的写法新建项目后,把 xxx_global.h文件中的内容拷贝到 另一个.h文件开头拷贝后把 xxx_global.h 文件删除掉.h文件的写法示例(dlllib.h)原创 2022-04-30 20:28:35 · 3780 阅读 · 2 评论 -
C++的.dll文件和.lib文件的使用
讲述了C++项目如何使用.dll和.lib文件的原创 2022-04-24 19:20:58 · 1127 阅读 · 0 评论 -
斐波那契搜索优化版
1 简介该算法是对二分法的改进。处理的数组是已经排序过的数组。斐波那契数列 int a[] = {1,1,2,3,5,8,13,21,34,55,89……}相邻的两个数越大,比例越接近黄金比例 0.618:1可以观察到 a[i] = a[i-1] + a[i-2]根据这个特点,每次以 a[i-1] 为分界线划分原数组,mid = arr[a[i-1]] 。如果 mid 比要查找的数大,则 i = i-1。如果 mid 比要查找的数小,则 i = i-2优点:时间复杂度为 l原创 2021-03-01 20:29:54 · 147 阅读 · 4 评论 -
JAVA 使用JNI与C++交互的详细过程
1 简介网上有很多教程,但是很多都没有一个完整的实例,我在学习的时候,踩了不少坑。我们使用JNI的目的,无非就是想要用调用C++的接口,并且最好JAVA也能为C++提供一个接口(用于回调),这两个目的都很重要。尤其后面那个目的,如果要实现异步操作,那么java必须能给C++提供接口2 类型的映射关系JNI 它通过类型映射,把JAVA中的基本数据类型,映射到了C++中,这个映射关系记录在了jni.h文件里(该文件在JDK根路径/include下)所以,在C++中,为了兼容JNI,你要尽量使用j原创 2021-01-18 22:21:58 · 6548 阅读 · 4 评论