
C++Helper系列
一般常用的C++函数,按class分类封装,可win及linux跨平台使用。
糖梨
GitHub:https://github.com/deargo。
码云:https://gitee.com/deargo。
公众号:糖梨(a_sweet_pear)。
展开
-
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 评论 -
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 评论