流浪小狗的窝

代码生命短暂,雕琢呕心沥血,开放源代码,对尽可能多的人施加影响,是对辛劳耕耘的回报...

小笔记-C++快速分解字符串

以前,针对分解字符串的需求,总是用Qt,最近发现C++一样的。特此记录。 C++版 #include <iostream> #include <vector> #include <...

2018-06-27 18:46:01

阅读数:73

评论数:0

QWebEngine-基于chromium内核的浏览器框架

近期,因为同学所托,稍微涉足了一下并不熟悉的Web浏览器这一块。由于之前用过Qt Webkit,便准备动手试试看,能不能在网页中实现自动填表。 自动填表的实现方法挺多,有基于JS的,基于IE OLE的,还有直接模拟鼠标、键盘操作的。论实现的简单程度,还是JS比较方便。之前QtWebkit中即可直...

2018-06-08 13:43:21

阅读数:256

评论数:2

C++右值引用的效果测试

右值引用主要作用是解决大对象在作为函数返回值返回时的深度拷贝问题,以及大对象之间的快速复制。 比如, std::vector<int> fun() { std::vector<int> a; ...

2018-06-05 23:26:37

阅读数:184

评论数:1

使用openCV+Qt+fcgi 为OpenStreetMap瓦片添加热力图图层

在搭建如OpenStreetMap等瓦片服务器的过程中,我们会关心当前服务器上哪些瓦片已经存在(被渲染了)、哪些瓦片被访问量大,哪些少。 统计瓦片的历史记录,可以直接扫描缓存,或者通过数据库来完成。如果能够把统计数据直接叠加到地图上显示,就更棒了!今天,就来动手制作一个webService,用来...

2018-05-26 20:15:47

阅读数:1081

评论数:3

一种基于C++STL库的回溯排列组合枚举器

在指导学生入门信息学竞赛的过程中,遇到最多的问题就是排列组合。当代信息学竞赛不鼓励学生们采用强力的语言特性来解决问题,一般建议首先从算法本身思考,尽量避免利用排列组合算法实施穷尽(这样的方法往往报超时)。 但如何快速的实现排列组合枚举这个问题本身,可以作为知识点来训练学生的基本功。这里我分享一个...

2018-04-22 11:58:54

阅读数:153

评论数:1

Qt5信号与槽C++11风格连接简介

最近在论坛上看到了这个方面的问题,详见这里。 随后浅浅地学习了一下子,看到了Qt官方论坛上给出的说明,觉得C++11的functional连接方法还是比Qt4既有的宏连接方法有很大不同。 传统的Qt4 Signal-Slot宏连接兼容性好,但是没有编译时检查,往往会由于笔误,产生预料之外的效果。...

2017-12-10 19:24:39

阅读数:1325

评论数:3

Qt数据可视化:Qt Data Visualization 与 Qt Charts 简介

Qt 最近开放了不少商业许可的模块,吸纳Qt Data Visualization 与 Qt Charts 模块无疑是为了在数据可视化方面弥补框架的不足。Qt ChartsQt Charts 在Qt4时代就有了,不过一直以来是商业许可的。从5.7.0开始,也纳入了有限开放许可证。

2017-11-19 21:35:16

阅读数:3189

评论数:1

几种C++多维数组管理方法的性能测试

为了测试几种常用的原生多维数组管理方法,我们利用GNU C++ 7.2 最新的MSYS2版本,进行一个测试。 测试结果认为,stl库vector\array\shared_ptr的性能已经很棒了!

2017-10-07 21:19:16

阅读数:1072

评论数:0

向Maillist投送邮件的注意事项

很多开源项目的问题解答,都使用邮件列表系统,比如 GNU mail man。 这种系统通过向特定邮件地址发送邮件,即可把问题广播给所有感兴趣的订阅者(已经事先subscribe该专题的邮件收件人 )。但是为了防止垃圾邮件,很多系统除了要求邮件格式为“plain text” 外,都还有较强的检...

2017-10-06 17:18:54

阅读数:448

评论数:0

C++ SharedPtr 智能指针操作二维数组的细节异同

智能指针(以shared_ptr为代表)是现代C++中非常重要的STL类。其使用引用计数机制,能够自动释放内存,从而一定程度上避免了内存泄漏。然而,由于STL库的版本各不相同,不同的shared_ptr实现还是会对使用造成影响。近期,笔者在升级维护一个既有代码的二维数组动态管理时,遇到了一类特殊的...

2017-10-05 17:50:01

阅读数:1524

评论数:4

C++闭包,一样很简单

闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。C++11以后,借助functional和lambada表达式,可以轻松的实现闭包功能。

2017-04-24 12:42:01

阅读数:1784

评论数:2

用C++Qt 与libfcgi快速开发后台 WebService

在与APP接口的后台WebService开发方面,估计很少有人直接使用C接口的libfcgi-dev进行开发的了。但是,这不代表此方法是不可行的。在强大的Qt库的支持下,原来使用C++开发webService也是非常方便的。这里我们以获取OpenStreetMap数据库中的地理信息为例子,看看现代...

2017-04-08 15:41:15

阅读数:2398

评论数:3

利用ZoomPipeline迅速实现基于线程池的全异步TCP点对点代理

在博文《一种基于Qt的可伸缩的全异步C/S架构服务器实现》中提到的高度模块化的类可以进行任意拆解,实现非常灵活的功能。今天,我们来看一看一个公司局域网访问英特网云服务器的点对点代理例子,这个简单的代理支持设置负责传输的线程个数,可以根据配置文件同时服务多个链接。

2017-02-21 21:16:19

阅读数:1238

评论数:1

C/C++运维中发现的两个隐晦BUG

在维护代码的过程中,会发现一些非常隐晦的错误,只有在一些特殊情况下才会崩溃。调试这类BUG需要安排代码审查以及比较完善的边界测试才能发现。1. 不要在判断语句中修改数据,2.注意容器指针的地址变化。

2016-07-28 13:39:26

阅读数:1255

评论数:0

functional助力C++11实现高度可重用接口-线程池例子

在我以前的文章里,介绍了基于Qt的流水线线程池例子,在那个例子里,要实现具体逻辑,需要通过继承基类实现接口。C++11标准的functional, bind 特性,大大提高了接口设计的灵活性。我们可以使用函数对象,实现低耦合的复用线程池,毫不相干的工作可以参与执行与流水。

2016-07-21 13:35:04

阅读数:1177

评论数:0

Qt5 UI信号、槽自动连接的控件重名大坑

对Qt5稍有熟悉的童鞋都知道信号、槽的自动连接机制。该机制使得qt designer 设计的UI中包含的控件,可以不通过显式connect,直接和cpp中的相应槽相关联。然而,这种机制存在一个隐患,即控件重名,需要引起重视

2016-07-09 11:40:08

阅读数:2261

评论数:3

C与C++的编译相关性

C与C++是高度二进制兼容的,C++类可以直接用 C 的结构体实现

2016-07-04 23:57:01

阅读数:1142

评论数:2

C++与OMP配合的最简线程池

最近在写算法时,发现OpenMP + C++ functional 可以瞬间构造一个线程池,并执行风马牛不相及的事情。看来,有必要好好思考一下今后算法优化的事情了!

2016-07-04 22:24:56

阅读数:1598

评论数:1

迁移到MSYS2 与 Qt 工具链注意的几个事情

MSYS64 是很不错的编译环境,但是,在应对 Qt -ActiveQt 工程方面,存在参数转译符为"/"导致的无法生成idl接口文件问题,且缺少 windows SDK midl.exe的支持。本文详细介绍了如何解决这些问题,使得MSYS64环境下,可以顺利的编译出 a...

2016-04-16 18:14:10

阅读数:2648

评论数:3

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器客户端(5) 小结

        经过不断试用与修改,这个查看器最终还是完成了设计、实现。查看器,顾名思义,没有编辑功能:说的白一点,只是一个以OpenStreetMap为底图的显示装置罢了。和专业GIS相比,这款基于插件的OpenStreetMap瓦片查看器客户端显得单薄。和消费类GIS(如面向浏览器的地图API...

2016-03-11 23:34:27

阅读数:2497

评论数:3

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