
笔记
文章平均质量分 56
qq_32250025
这个作者很懒,什么都没留下…
展开
-
C++与QML
QML 只能运行在一个受限环境中,这是由于 QML 语言本身有一些限制。为了解决这一问题,我们可以使用 C++ 编写一些功能,供 QML 运行时调用。为了能够利用 C++ 扩展 QML,首先我们需要理解 QML 的运行机制。与 C++ 不同,QML 运行在自己的运行时环境中。这个运行时在 QtQml 模块,由 C++ 实现,包含一个负责执行 QML 的引擎,为每个组件保存可访问属性的上下文,以及实...原创 2018-04-11 09:22:32 · 874 阅读 · 0 评论 -
数组中的逆序对 - 我们不一样
数组中的逆序对 - 我们不一样看到一道很有趣的题,别人基本上都是用“归并排序”,我就换了一种思路。但是让你沮丧的是,网上运行结果,提示“运行超时”,也没说那个测试用例超时,也看不到测试用例。我个人认为我的算法没有问题,时间复杂度是O(n*logn)。特意记录一下,有哪位大牛能找出我的错误,请留言。原题链接:https://www.nowcoder.com/questionTerminal/96bd...原创 2018-05-29 09:46:23 · 319 阅读 · 0 评论 -
Qml 与 QWidget交互
QWidget使用软件栅格化渲染,Qt Quick则是使用OpenGL渲染。#pragma once#include <QWidget>#include <QQuickWidget>#include <QFileDialog>class WidgetCustom :public QWidget{ Q_OBJECTpublic: WidgetCu...原创 2018-06-05 11:29:11 · 2043 阅读 · 1 评论 -
最短路径 Dijkstra算法
Dijkstra算法,很简单。已从出发点开始,一层层向下搜索,每次选择总路径最短的点为搜索点,继续向下搜索,直到找到终点,且路径最短。两个测试用例:第一行n,m,s,t,分别代表点的总数,路径的总数,出发点和终点。接下来m行,b, e, l 代表路径的起点,结束点和长度。算法不严谨的地方,可自行修改。8 16 1 81 6 241 3 471 5 706 4 1206 3 254 8 ...原创 2018-05-24 17:53:03 · 243 阅读 · 0 评论 -
QQuickWidget qml不显示
在Qt QWidget 里直接嵌入qml界面,拖入QQuickWidget 控件,添加source,选择文件和选择资源出现两种情况。发现无论如何,通过选择资源引入的qml不显示。最后发现该qml文件,存在未加入“qrc”文件的子qml界面。将所有的qml添加到资源管理器即可。...原创 2018-06-13 14:32:07 · 2910 阅读 · 0 评论 -
数据对齐 Tab 键
数据的对齐有时候不像我们看到的那样,有时候看起来很整齐的数据,读取却不对,如果数据是以Tab键隔开的,那可要注意了。用Notepad++打开文本数据,Tab键占的空格位是可以修改的,一般20即可。这只是直观上的是否对齐,一旦读进内存,一个Tab键,只占一个字节'\t',跟看到占多少个空格并没有关系。百度百科:键盘上的Tab键位于大小写键( Caps Lock )的上面,Tab 键是 tabulat...原创 2018-06-07 14:35:16 · 947 阅读 · 0 评论 -
qml 应用丢失菜单栏
qml 开发的应用程序,点击X号关闭,再次打开丢失菜单栏。猜测可能是是关闭的时候,菜单栏自动释放了。所以我们可以拦截关闭事件,不关闭,仅仅隐藏。onClosing: { close.accepted = false; hide(); }...原创 2018-06-01 14:43:34 · 266 阅读 · 0 评论 -
快排算法
快排算法比较基础,注意交换以及推进的策略(从后方找比标记值小的,从前方找比标记值大的)。每次把扫描的数组分成两份,递归下去就得到排序的数组。#include <iostream>#include <time.h>//tdwusing namespace std;int adata[100] = {0};//测试数据void QuickSort(int nfirs...原创 2018-07-10 17:31:06 · 798 阅读 · 0 评论 -
提高C++效率
转的一篇提高C++效率的文章本文以C/C++程序为例讲述了程序运行效率的10个简单方法,分享给大家供大家参考之用。具体分析如下:对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的学问,需要很多的知识,然而并不是每个程序员都具备这样的知识,而且论述如何优化程序提高程序运行效率的书籍也很少。但是这并不等于我们可以忽略程序的运行效率,下面就介绍一...原创 2018-07-04 09:45:47 · 180 阅读 · 0 评论 -
二分查找
转:二分查找前言二分查找,最基本的算法之一,也是面试中常被考察的重点,因为基本的算法最能反映出一个人的基础是否扎实。本文对二分查找相关题目做一个总结。二分查找函数实现:int bin_search(int arr[], int n, int key){ int mid = 0; int low = 0, high = n-1; while (low <= hig...原创 2018-07-04 09:47:20 · 385 阅读 · 0 评论 -
归并排序
归并排序,递归,直到只含有一个数据。#include <iostream>#include <time.h>//tdwusing namespace std;int adata[100] = {0};//测试数据int atemp[100] = { 0 };//辅助的数组void MergerArray(int nfirst, int nmid, int nl...原创 2018-07-10 18:10:49 · 175 阅读 · 0 评论 -
KMP 算法
转:https://blog.youkuaiyun.com/starstar1992/article/details/54913261KMP算法求解什么类型问题字符串匹配。给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。 如下面两个字符串:char *str = "bacbababadababacambabacaddababacasdsd";char *ptr = "a...转载 2018-05-23 14:39:36 · 157 阅读 · 0 评论 -
Qml应用程序的性能考虑与建议
本文翻译自Qt官网文档:http://doc.qt.io/qt-5/qtquick-performance.html QtQml应用程序的性能考虑与建议 1、时间考虑作为一名程序开发者,应该努力使渲染引擎的刷新率维持在60fps,也就是说在每帧之间大约有16ms,这段时间包括了基本图元在图形硬件上的描画。具体内容如下:>尽可能的使用异步事件驱动来编程。>使用工作者线程来处理重要的事情,...原创 2018-05-21 13:12:44 · 360 阅读 · 0 评论 -
Qt:QML:JavaScript 和QML 语法错误表
转:http://doc.qt.io/qtcreator/creator-checking-code-syntax.html语法错误表IdSeverityMessageDescriptionM1ErrorInvalid value for enum无效的枚举值M2ErrorEnum value must be a string or a number枚举值必须为字符串或数字M3ErrorNumbe...原创 2018-04-11 16:22:25 · 1685 阅读 · 0 评论 -
error "cmd.exe" exited with code 1
error "cmd.exe" exited with code 1 编译程序中出现MSB6006:cmd.exe error问题,网上有种说法是使用了中文路径,将中文路径改成英文路径就可以了,这种解决办法应该可以解决一定的问题,但有时改成英文路径也不管用,这时可以想想了,中文路径不管用,可以理解为一下文件获取不到,用英文路径可以获取,也就是说可以拿到文件,当路径改成英文路径还出现...原创 2018-04-12 09:45:01 · 3291 阅读 · 0 评论 -
QML TableView坑
QML 写界面的时候,把自己坑了,不能正确的选中一行,最后发现第一列用了"index",这个可能是TableView的内置属性(猜测),后边给index赋值,所以不能选中争正确的行,换一个名字即可。TableView { x:320;y:0;width: 700;height: 730; selectionMode: Selectio...原创 2018-04-17 18:08:11 · 3678 阅读 · 2 评论 -
Qt Quick Controls 与 Qt Quick Controls 2的区别
转:Quick Controls 原本是为支持桌面平台而开发的,后来又加入了移动平台和嵌入式平台的支持。它们应用非常广泛,因为它们提供了足够灵活的样式系统,以允许开发具有平台相关或者无关风格的应用程序。在嵌入式系统中,硬件资源有限,这套系统可能是比较低效率的。而Qt Quick Controls 2正是为解决这样的问题而生的,可以使用基准测试来指导开...原创 2018-04-12 14:37:51 · 1766 阅读 · 0 评论 -
Qml 注意细节
注:QML 创建对象的顺序是:同一层级,后创建的,先完成。所以如果调用未完成对象,没有效果。应该把依赖的对象放后面。1、除了main.qml文件名的首字母可以小写以外,其它的.qml文件名的首字母都要大写。2、在main.qml定义的(根item除外)MouseArea局部有效,在其它的.qml定义的MouseArea全局有效。3、帮助文档没列出的方法、成员变量、信号、槽,可以利用代码提示得到,如...原创 2018-04-25 17:37:38 · 542 阅读 · 2 评论 -
动态规划详解
总结的非常好,谢谢作者。http://cppblog.com/menjitianya/archive/2015/10/23/212084.html目录 一、动态规划初探 1、递推 2、记忆化搜索 3、状态和状态转移 4、最优化原理和最优子结构 5、决策和无后效性二、动态规划的经典模型 1、线性模型 2、区间模型 ...原创 2018-05-17 15:46:25 · 592 阅读 · 0 评论 -
单词切割题 随记
偶然看到的一道题,一下子把我带回了那个遥远的记忆。觉得这道题跟以前在游戏里做的敏感词过滤有些相似,就随手记录下来。单词切割题 题目为: 给定一个字符串S和有效单词的字典D,请确定可以插入到S中的最小空格数,使得最终的字符串完全由D中的有效单词组成,并输出解。 如果没有解则应该输出n/a 例如 输入 S = “ilikealibaba” D = [“i”, “like”, “ali”,...原创 2018-05-11 16:28:05 · 289 阅读 · 0 评论 -
魔王打工记(三)卖菜
在群里看到的一道题,觉得有趣,就随手写下来了。#include <iostream>//tdwusing namespace std;int main(){ int n;//天数 cin >> n; int* pA = new int[n];//蔬菜数量 memset(pA, 0, n); int* pB = new int[n];//价格 memset...原创 2018-05-14 10:48:34 · 476 阅读 · 1 评论 -
DP 经典
转:1.最大连续子序列之和给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序中元素和最大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。状态转移方程...原创 2018-05-14 17:07:20 · 815 阅读 · 0 评论 -
漂亮的树 算法
题目链接:漂亮的树引入一个标准漂亮树(1,2,3,4,5,4,3,2,1)概念,问题就简化了。题目:题目描述 街上有n棵树,标号为1...n,第i棵树的高度为ai。定义这n棵树是漂亮的,当且仅当 1. 对于所有的i,ai=an-i+1; 2. 对于1 <= i < n / 2 (不是整除),ai + 1= ai + 1;比如说 “2 3 4 5 5 4 3 2”和...原创 2018-05-25 09:20:14 · 382 阅读 · 0 评论 -
Effective C++
转:https://blog.youkuaiyun.com/KangRoger/article/details/44706403目录条款1:视C++为一个语言联邦条款2:尽量以const、enum、inline替换#define条款3:尽可能使用const条款4:确定对象使用前已先被初始化条款5:了解C++默认编写并调用哪些函数条款6:若不想使用编译器自动生成的函数,就该明确拒绝条款7:为多态基类声明virt...原创 2018-07-04 09:59:45 · 418 阅读 · 0 评论 -
重载
在重载输出输入运算符的时候,只能采用全局函数的方式(因为我们不能在ostream和istream类中编写成员函数),这里才是友元函数真正的应用场景。对于输出运算符,主要负责打印对象的内容而非控制格式,输出运算符不应该打印换行符;对于输入运算符,必须处理可能失败的情况(通常处理输入失败为默认构造函数的形式),而输出运算符不需要。 1 #include<iostream> 2 using...原创 2018-07-04 13:22:02 · 169 阅读 · 0 评论 -
C++ 三种new
转:首先,我们先看一下C++应用程序,使用memory的途径如下图所示C++应用程序中申请内存基于分配器的实现(std::allocator),而分配器基于C++primitives(new,new[]...),c++primitives基于C语言中的malloc/free..,当然越底层的函数效率越高.那我们会想,直接用最底层的实现多好,效率还高.但如果你直接调用底层的函数去实现功能,虽然你的效...原创 2018-07-04 13:45:02 · 1982 阅读 · 0 评论 -
VS2015 单元测试代码覆盖率
VS单元测试运行覆盖率检查,报错如下:Empty results generated: No binaries were instrumented. Make sure the tests ran, required binaries were loaded, had matching symbol files, and were not excluded through custom set...原创 2018-09-17 13:33:47 · 2589 阅读 · 0 评论 -
析构函数 private
类中“私有”权限的含义就是:私有成员只能在类域内被访问,不能在类域外进行访问。把析构函数定义为私有的,就阻止了用户在类域外对析构函数的使用。这表现在如下两个方面:1. 禁止用户对此类型的变量进行定义,即禁止在栈内存空间内创建此类型的对象。要创建对象,只能用 new 在堆上进行。2. 禁止用户在程序中使用 delete 删除此类型对象。对象的删除只能在类内实现,也就是说只有类的实现者才有可能实...原创 2018-10-11 08:59:17 · 1605 阅读 · 0 评论 -
libuv与uWebSocket 掉坑之旅
libuv和uWebSocket都是开源的,这一点很棒。libuv是Node.js的内核,强大、简洁、优雅。uWebSocket浅浅的封装了libuv,改装成websocket版(仅仅用了少量的libuv的东西)。掉坑之旅开始:上周一切完美的事情,周一发生了转折。客户端和服务端在同一台机器上,客户端连接服务端,竟然需要1分钟左右才能连接上,拔掉网线,瞬间就连上了。这也太神奇了吧。一大堆...原创 2018-09-21 09:15:10 · 6898 阅读 · 2 评论 -
uWebSocket http
uWebSocket是支持http请求的,不过比较粗糙吧。template <bool isServer>void Group<isServer>::onHttpRequest(std::function<void (HttpResponse *, HttpRequest, char *, size_t, size_t)> handler) { ...原创 2018-10-17 17:54:03 · 2803 阅读 · 0 评论 -
收集
shader:https://www.shadertoy.com/游戏资源:https://opengameart.org/libuv:https://github.com/libuv/libuvlibuv剖析:https://www.cnblogs.com/chenyangyao/category/771516.htmluWebsockets:https://github.co...原创 2018-12-07 14:04:48 · 211 阅读 · 0 评论 -
转:推荐 C/C++ 人工智能 框架和库
值得推荐的C/C++框架和库 C++资源大全关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++标准库,包括了STL容器,算法和函数等。C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。 Standard Temp...原创 2019-01-18 09:23:57 · 867 阅读 · 0 评论 -
Centos7 安装SVN爬坑之旅
1:注意防火墙2:注意svn设置成开机自启动3:暂时没空写原创 2019-05-10 16:38:35 · 151 阅读 · 0 评论 -
VS 调试 python 调用 dll
掉坑里了。用VS2015搞了一天没成功,换成VS2017,立马就可以了。在做目标检测的时候,训练好的数据集在python环境下运行,检测完,把图传给C++写的动态库。中间出问题,想要调试一下。其实也很简单。py文件中,在要调试的函数前一句"input()",然后执行该文件,会停到inout()处,在VS中“调试”---“附加到进程”---"python.exe",应该就可以了...原创 2019-05-24 17:57:35 · 1483 阅读 · 0 评论 -
Dubbo + Zookeeper 微服务启动失败
ERROR 14088 --- [ main] o.c.dubbo.provider.ServicePublisher : DUBBO service start failed, cause:java.lang.RuntimeException: failed to publish DUBBO serviceERROR 14088 --- [ ...原创 2019-06-12 16:07:45 · 728 阅读 · 0 评论 -
Redis 分布式锁
public class RedisLock {/*<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency>*/ ...原创 2019-08-06 18:28:15 · 257 阅读 · 0 评论 -
TerminateProcess 杀进程
今天又掉坑里了。用“TerminateProcess”杀某个控制台进程,结果进程杀死了,应用程序还停留在状态栏,任务管理器中的“进程”已找不到被杀死的进程,“应用程序”里还能看到。最后发现是“system("pause");”惹的祸,这个玩意起了一个系统进程。以后慎用。 bool KillProgress(const DWORD& _dwId) { HANDLE hProc...原创 2018-09-11 14:14:22 · 3187 阅读 · 0 评论 -
libuv源码分析
转:libuv source analysis - Say it from libuv libuv源码分析 - 从libuv说开来Website: http://paulran.github.io/libuv-source-analysis 前言简介baseuv__io_tuv_loop_tuv_handle_tuv_req_thandletcp...原创 2018-08-29 16:04:36 · 304 阅读 · 0 评论 -
GPU 优化
转:GPU的瓶颈其实仔细分析我们就可以发现,影响的GPU性能的无非就是2大方面,一方面是顶点数量过多,像素计算过于复杂。另一方面就是GPU的显存带宽。那么针锋相对的两方面举措也就十分明显了。减少顶点数量,简化计算复杂度。压缩图片,以适应显存带宽。减少绘制的数目那么第一个方面的优化也就是减少顶点数量,简化复杂度,具体的举措就总结如下了:保持材质的数目尽可能少。这使得Unity更容易进行批处理。使用纹...原创 2018-07-04 16:25:07 · 1344 阅读 · 0 评论 -
对象做为函数参数和异常的区别
把一个对象传递给函数或一个对象调用虚拟函数与把一个对象做为异常抛出,这之间有三个主要区别。第一、异常对象在传递时总被进行拷贝;当通过传值方式捕获时,异常对象被拷贝了两次。对象做为参数传递给函数时不一定需要被拷贝。第二、对象做为异常被抛出与做为参数传递给函数相比,前者类型转换比后者要少(前者只有两种转换形式)。最后一点,catch子句进行异常类型匹配的顺序是它们在源代码中出现的顺序,第一个类型匹配成...原创 2018-07-04 17:04:38 · 246 阅读 · 0 评论