
C/C++
文章平均质量分 83
糖梨
GitHub:https://github.com/deargo。
码云:https://gitee.com/deargo。
公众号:糖梨(a_sweet_pear)。
展开
-
C++获取UTF8编码下字符串中的中英混合时的字符个数
UTF8编码规则以及该编码格式下时中英混合字数统计原创 2024-01-23 11:49:41 · 1701 阅读 · 1 评论 -
Windows文件搜索工具(文件、文件夹、文件内容搜索,支持大小写、全字、正则表达式搜索条件)
用过Windows的都知道,对于文件搜索这块,不是很友好,比如搜索文件时,不能单独打开窗口,搜索内容没有。 使用Everything比较快,但有时要搜索文件内容,特别不方便,而且一般使用场景,就是搜索文件内容。 所以这里自己做一个简单的搜索工具。简介、方便、适用。工具简介 Windows文件搜索工具。 支持指定目录和文件,并按照文件名,或文件内容的进行搜索。 ...原创 2020-03-12 14:01:26 · 4483 阅读 · 0 评论 -
QTableWidget多选selectedItems和selectedRanges的使用和区别
QTableWidget是QT程序中,常用的显示数据表格控件,其用法也不再赘述,这里就说一说多选接口的使用方法,区别和问题。 首先,表格支持多选(Ctrl、Shift、 Ctrl+A都可以),需要对表格进行属性设置:setSelectionMode(QAbstractItemView::ExtendedSelection); 另外,还可以对选中模式进行设置,比如选中时,默认...原创 2020-03-06 18:26:57 · 13097 阅读 · 1 评论 -
C++Helper--实现迭代器iterator版本的双向循环链表list(增、删、改、查、排序、去重等)
实现一个单链表,或是双向链表,是我们学习、面试,和工作中常会遇到的问题,在上一篇,我们在原有的std::list基础上,扩展了增删改查等一系列接口,这里,我们手动实现一个双向循环链表。 为适用于普通算法,这里实现了迭代器的功能。为防止重复申请和释放操作,内部保留一个已分配的空间,以提高性能。实现原理为了支持前向和反向访问list容器的元素,list采用双向循环的链表结构组织数据元...原创 2020-02-29 18:55:38 · 617 阅读 · 0 评论 -
C++Helper--在原std::list基础上改进接口:新增、删除、查询、遍历、数据转换、集成算法等
同vector一样,list也是常用的一种STL容器。 list为双线列表,能够快读的插入和删除元素,在实际项目中也是应用广泛,但不支持随机访问,已有接口不够丰富,或是缺少常用的接口,于是本文意在原list基础上,改进或新增应用接口。 本文源码见【完整代码】章节,或GitHub:https://github.com/deargo/cpphelper。list介绍 list...原创 2020-02-21 17:15:26 · 530 阅读 · 0 评论 -
C++Helper--在原std::vector基础上改进接口:新增、删除、查询、遍历、数据转换、集成算法等
在STL容器中,vector可能是最受欢迎的了,因为他们只需要往向容器中添加元素,而不用事先操心容器大小的问题。 不过用过的都知道,vector接口不够丰富。于是这里,将在原vector的基础上,拓展新的接口,方便实际场景中的运用。 本文源码见【完整代码】章节,或GitHub:https://github.com/deargo/cpphelper。vector介绍 vec...原创 2020-02-18 22:18:53 · 542 阅读 · 1 评论 -
C++Helper--使用C++11实现半同步半异步线程池,接口接受:函数对象、成员函数、普通函数、fucntion和lamda表达式等。
本文使用C++11的线程、互斥量和条件变量,实现了一个轻巧的线程池,可用于大量并发任务的场景,以避免频繁的线程创建和销毁,节约系统资源。 本文对处理任务的接口,也进行了包装,可接受:函数对象、成员函数、普通函数、fucntion和lamda表达式,便于完美的应用到实际工作中。 本文源码见【完整代码】章节,或GitHub:https://github.com/deargo/cpphe...原创 2020-02-17 19:33:57 · 412 阅读 · 0 评论 -
Qt Creator安装与使用
Qt Creator介绍Qt是一个跨平台C++图形用户界面应用程序开发框架。Qt既可以开发GUI程序,也可用于控制台工具和服务器开发。Qt Creator是 Qt 推出的一款跨平台的,轻量级集成开发环境(IDE)。Qt框架约等于MFC 。Qt Creator约等于VS。获取Qt Creator1, Start a free Qt trial2, Desktop & Mobile Appli...原创 2018-03-13 18:11:16 · 3233 阅读 · 0 评论 -
C++Helper--用C++11改进命令模式,接口接受:函数对象、成员函数、普通函数、fucntion和lamda表达式等。
本文使用C++11改进命令模式,见转载链接。本文源码见【完整代码】章节,或GitHub:https://github.com/deargo/cpphelper。命令模式 一般定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 由于将请求都封装成一个个命令对象了,使得我们可以集中处理或者延迟处理这些命令请求...原创 2020-02-12 17:38:51 · 701 阅读 · 0 评论 -
C++Helper--动态库的显式调用
本文主要介绍C++动态库的显式调用方法,及其封装。动态库和静态库 动态库全称动态链接库(dynamic link library),他包含了函数所在的DLL文件和文件中函数位置的信息(入口),在运行时被加载。静态库全称静态链接库(static link library),他包含函数代码本身,在编译时直接将代码加入程序当中。 从字面意思来看,区别就是静态和动态,而这里的静态和动态...原创 2020-02-11 20:13:14 · 1529 阅读 · 0 评论 -
c++ 线程局部变量thread_local
Linux中的线程局部存储(一) 本章节转自:https://blog.youkuaiyun.com/cywosp/article/details/26469435 在Linux系统中使用C/C++进行多线程编程时,我们遇到最多的就是对同一变量的多线程读写问题,大多情况下遇到这类问题都是通过锁机制来处理,但这对程序的性能带来了很大的影响,当然对于那些系统原生支持原子操作的数据类型来说,我们可以使用...原创 2020-01-14 10:07:52 · 6744 阅读 · 0 评论